1.代码实现
在需要去除标题栏的类,onCreate()方法中,一定要在super.onCreate(savedInstanceState);之前加入
requestWindowFeature(Window.FEATURE_NO_TITLE);,否则报错或者无效果,现在基本就可以去除标题栏了。
但是如果Activity继承了AppCompatActivity,这个就失效了 ,加入了上面的方法,但是不能去除标题栏。别着急,按照下面的方法a或者b即可解决:
a、手动在onCreate()里调用下面代码:
if (getSupportActionBar() != null){
getSupportActionBar().hide();
}(推荐用这种)
b、第二种方法 直接用supportrequestwindowFeature,把1中调用的方法换成下面的就可以了:
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
2.配置文件中实现
注册Activity时加上如下代码就可以实现:
同样的问题,如果你的Activity继承了AppCompatActivity,以上方法可能会失效,解决办法(a和b选择一种):
a、 直接修改style 。缺点:直接改变全局的Activity;注意:继承的主题DarkActionBar
b、需要去除标题栏的Activity 注册中:添加 android:theme=“@style/Theme.AppCompat.NoActionBar”
3.在前面两步的基础上,如果想要全屏显示,并且显示状态栏或者自定义状态栏背景
在setContent之前设置如下代码
/**
- 全屏设置(显示状态栏)
*/
private void fullWindow() {
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
}
最新还有这种方式!
//设置全屏
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);