先上代码:
透明状态栏:
if (Build.VERSION.SDK_INT >= 21) { //只有5.0以上的系统才支持
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option); //设置系统UI元素的可见性
getWindow().setStatusBarColor(Color.TRANSPARENT); //将状态栏设置成透明色
}
ActionBar actionBar = getSupportActionBar();
actionBar.hide(); //隐藏ActionBar
透明状态栏+透明底部导航栏
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION //隐藏底部导航栏
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setNavigationBarColor(Color.TRANSPARENT); //将导航栏设置为透明
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
总结:最主要的一个函数setSystemUiVisibility() 设置系统UI的可见性
其他:
全屏模式:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && Build.VERSION.SDK_INT >= 19) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
隐藏ActionBar的三种方法:
1、修改主题(推荐)
android:theme="@style/AppTheme"
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"/>
2、调用hide隐藏
ActionBar actionBar = getActionBar();
//ActionBar actionBar = getSupportActionBar();(v7包)
actionBar.hide();
3、继承Activity
Activity继承AppCompatActivity是默认显示ActionBar的
关于ActionBar:3.0的时候引入ActionBar 5.0的时候推荐使用ToolBar了