Activity去除标题栏和状态栏总共有三种方式:
1)在代码中实现
在onCreate()方法中添加下面的的代码(一定要写在setContentView()前面):
//去掉标题栏
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置全屏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
但要注意的是:在代码中设置的话,设置无标题和设置全屏的两段代码要放置在 setContentView(R.layout.main)(界面渲染,完成了再全屏是不行的)这段代码的前面。要不然会报错,且在进入界面时会短暂显示状态栏,然后马上隐藏。
2)在清单文件AndroidManifest.xml文件里的application下修改
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
3)在style.xml文件中定义
<style name="AppTheme.NoActionBar">
<!-- 隐藏标题栏 -->
<item name="windowNoTitle">true</item>
<!-- 隐藏状态栏 -->
<item name="android:windowFullscreen">true</item>
</style>
然后在AndroidManifest.xml文件里的application下引用
android:theme="@style/AppTheme.NoActionBar"
requestWindowFeature(Window.FEATURE_NO_TITLE)无效解决方法:
正常情况下requestWindowFeature(Window.FEATURE_NO_TITLE)是可以生效的,但是当Activity继承子AppCompatActivity的时候,这个就失效了
解决办法:
1、手动在oncreate里调用hide()
if (getSupportActionBar() != null){
getSupportActionBar().hide();
}
2、第二种最简单 直接用supportrequestwindowFeature好了:
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
3、第三种 直接修改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>
4、第四种:
对应的Activity 注册中:添加 android:theme="@style/Theme.AppCompat.NoActionBar"