闲来无聊在csdn博客频道看到一篇关于去除标题栏的博文。于是根据思路自己也写了一篇大致一样的东西出来。
我们知道在设置Android全屏的时候通常会有三种方法,虽然各不相同,但都可以完成相应地效果。下面详细介绍一下具体方式:
一、通过Java代码设置
这种方式是初级开发使用最多的情况,就是在onCreate方法设置
requestWindowFeature(Window.FEATURE_NO_TITLE);
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
}
}
这里需要注意的时一定要再setContentView(R.layout.activity_main);方法之后才能正常使用,不然会出现诚挚直接crash掉
报错信息如下:
Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
ps:使用此种方法设置,可能会出现打开界面时会先出现标题栏,然后再消失。这时因为旨在activity的onCreate方法中定义了去除代码。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
</application>
这样设置的情况可能会导致整个应用都是没有标题栏。但是在实际开发中,我们往往会遇到只需要几个界面去除即可,例如我们最常见的启动页面,引导页等。这时,我们就可以只需要在要去除标题栏的activity中去除即可。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
三、在res/values目录下地styles.xml文件中自定义一个主题,这里取名为NoTitle,代码如下:
<style name="NoTitle" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
</style>
然后再通过第二中方法设置相应地界面即可。这种方式可以对主题进行定制,可以做主题设置等功能。扩展性非常不错。