【Android 入门学习篇】 1.标题栏隐藏

原文链接:http://www.cnblogs.com/arvinlan/archive/2012/09/28/2707384.html

在很多Android的项目里面,隐藏标题栏与隐藏信息栏都是会经常用到的。

下面便是本菜鸟在学习过程中的一些领悟笔记。

 

一、只隐藏标题栏的效果图

【Android 入门学习篇】 1.标题栏隐藏

实现该效果有两种做法:

1:在 public void onCreate(Bundle savedInstanceState)函数中添加代码

     this.requestWindowFeature(Window.FEATURE_NO_TITLE);

     这行代码必须添加在

     setContentView(R.layout.main);方法前,否则会在程序执行时报错

【Android 入门学习篇】 1.标题栏隐藏【Android 入门学习篇】 1.标题栏隐藏View Code
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
    }

 

2:在 AndroidManifest.xml 文件中 activity 节点中添加

     android:theme="@android:style/Theme.NoTitleBar"

【Android 入门学习篇】 1.标题栏隐藏【Android 入门学习篇】 1.标题栏隐藏View Code
<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".CompassActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

 

二、隐藏信息栏的效果图

【Android 入门学习篇】 1.标题栏隐藏

实现该效果的做法:

1:在 public void onCreate(Bundle savedInstanceState)函数中添加代码

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSEEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

这行代码必须添加在

setContentView(R.layout.main);方法前,否则会在程序执行时报错

【Android 入门学习篇】 1.标题栏隐藏【Android 入门学习篇】 1.标题栏隐藏View Code
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
          WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }

 

三、隐藏标题栏跟信息栏的效果图

【Android 入门学习篇】 1.标题栏隐藏

实现该效果的做法:

1:在 public void onCreate(Bundle savedInstanceState)函数中添加代码

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSEEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

代码必须添加在

setContentView(R.layout.main);方法前,否则会在程序执行时报错

【Android 入门学习篇】 1.标题栏隐藏【Android 入门学习篇】 1.标题栏隐藏View Code
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
          WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }

 

2:在 AndroidManifest.xml 文件中 activity 节点中添加

   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

【Android 入门学习篇】 1.标题栏隐藏【Android 入门学习篇】 1.标题栏隐藏View Code
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".CompassActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

 

 

在以上三种效果中,其中一、三列举了两个方式实现,虽然实现的最终效果是一样,但是在执行的过程中有着微小的差别。

在onCreate 函数中添加代码一部分,一直都强调必须在setContentView(R.layout.main);方法执行之前添加,requestWindowFeature、getWindow 两个方法是告诉系统在描述这个窗体时的属性设置,所以必须在窗体被描述出来前做好声明。

好了到了这里就引发出一个微小的差别了,当程序运行时,虽然窗体在没有被完全描述出来之前,其实这个窗体已经被打开了,那么只要机子运行比较卡的话,可以发现一个问题,程序在一开始运行时,标题栏跟信息栏是存在的,但是在窗体内容被整体描述出来的时候,标题栏或者信息栏才会被隐藏掉。

而第二种在AndroidManifest.xml文件中修改节点属性的操作则没出现该情况,可见程序在初始化运行时先读取了该配置文件。

 

 

注:以上所有观点均为笔者在自己的环境下实践结果,如有不同观点或者错误的描述,还请各位看官见谅,欢迎拍砖。

 

 

 

转载于:https://www.cnblogs.com/arvinlan/archive/2012/09/28/2707384.html

上一篇:全屏Activity的实现(去除标题栏、去除系统状态栏)


下一篇:android WindowManager显示在锁屏之上