去掉标题栏的方法(使用requestWindowFeature(Window.FEATURE_NO_TITLE);为什么失效?不仅失效,可能会挂)
使用requestWindowFeature(Window.FEATURE_NO_TITLE)隐藏标题栏失效的原因,不仅失效,可能会挂。可能是activity继承的是AppCompatActivity。下面详细介绍了使用方法:
一、如果创建的activity继承了Activity:
第一种:入门的时候经常使用的一种方法:
requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉标题栏注意这句一定要写在setContentView()方法的前面,不然会报错的
第二种:在AndroidManifest.xml文件中定义
<application android:theme="@android:style/Theme.NoTitleBar">
这样写的话,整个应用都会去掉标题栏,如果只想去掉某一个Activity的标题栏的话,可以把这个属性加到activity标签里面
第三种:这种在一般的应用中不常用,就是在res/values目录下面新建一个style.xml的文件
代码如下:
<?xml version="1.0" encoding="UTF-8" ?> <resources> <style name="notitle"> <item name="android:windowNoTitle"> true </item> </style> </resources>
这样,我们就自定义了一个style,就相当于一个主题,然后在AndroidManifest.xml文件中定义,也可达到去掉标题栏的效果
代码如下:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/notitle">
二、创建的activity默认继承了AppCompatActivity
第一种:
getSupportActionBar().hide(); //去掉标题栏注意这句一定要写在setContentView()方法的后面
第二种:可以在AndroidManifest.xml中作如下配置,这样就没有标题栏了
<application android:theme="@style/Theme.AppCompat.NoActionBar">
且:千万注意
1-首先是AppCompatActivity默认带标题,但Activity不带
2-而且AppCompatActivity和 requestWindowFeature(Window.FEATURE_NO_TITLE)有冲突
当活动继承AppCompatActivity时再设置取消标题则程序会直接挂掉
即以下程序无法正常运行
1
2
3
4
5
6
7
8
9
|
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); } } |