Android简单粗暴地去掉标题栏以及全屏
总结的几种去掉标题的方式:
1. 在代码中实现
在此方法setContentView(R.layout.activity_main)之前加入:
requestWindowFeature(Window.FEATURE_NO_TITLE);
如果用了这个方法失效的话,那是因为你的activity继承AppCompatActivity。。。。
就用我提供的下面这种方法
2. 重点:解决activity继承AppCompatActivity去掉标题栏
使用As开发工具的大佬们都知道,更新之后,所有的activity都是继承于AppCompatActivity的
之前本人做项目的时候,用了一个高仿滴滴的城市筛选,但是必须加主题,否则就会报一个奇葩的错误,没办法,就遇到了这个纠结的问题
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
用这个有一个bug,那就是状态消失之后,标题栏还在。。。。
于是更改为这个:
方法一:
getSupportActionBar().hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
方法二:
手动在oncreate里调用hide()
if (getSupportActionBar() != null){
getSupportActionBar().hide();
}
总结: 在代码中实现去掉标题的方法失效,主要是AppCompatActivity根本没标题栏。因为它的ActionBar才是标题栏
3. 在Manifest清单文件中
注册Activity时加上下面这句话进行配置
<activity android:name=".Activity"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
4. 在style中添加属性,并在清单文件中注册
<!--去掉标题-->
<style name="AppThemeTitle" parent="Theme.AppCompat.Light.NoActionBar"/>
清单文件在application中写入:
android:theme="@style/AppThemeTitle"
5. 在style中全局去设置去掉标题
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
6. 有的需求不一样,想要设置全局、整个应用为全屏或者去掉标题
在你的清单文件中的application中去设置,找到相对应的application节点
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" ---- 设置全屏
android:theme="@android:style/Theme.NoTitleBar" ---- 去掉标题栏
7. 在代码设置全屏显示
//去掉状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
8. 在使用的时候,不要在清单文件中去给相对应的activity去设置如下style
在AndroidManifest.xml清单文件中,找到相应的Activity节点;
<activity android:name=".MainActivity"
android:theme="@android:style/Theme.NoTitleBar" /> ---- 去掉标题栏
或者:
<activity android:name=".RoteMillageActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> ---- 设置全屏
至于为什么,有时候运行你的项目,它会奔溃
解决办法,改为如下:(这个是没有标题栏)
android:theme="@style/Theme.Design.Light.NoActionBar"
最终总结一下:
去掉标题的方法有很多,我只是介绍了几种常用的,后期在给大家更新吧