如何做到沉浸式狀態欄---更加準確的說是透明狀態欄 Translucent Bar
設置imageView圖片 高寬 match_parent 但是沒有隱藏ActionBar
效果:
image
透明狀態欄和隱藏ActionBar
- 在activity文件中添加
// 顯示activity_main布局
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//透明狀態欄
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
// 隱藏系統自帶應用欄
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
- 這種效果只有5.0及以上系統支持
- 使用了SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE,注意兩個Flag必須要結合在一起使用,表示會讓應用的主體內容占用系統狀態欄的空間
- 最后再調用Window的setStatusBarColor()方法將狀態欄設置成透明色就可以了。
需要注意的是,這一種變成透明狀態欄的方法要注意你設置的自定義的ActionBar(一般為56dp)的高度要加上狀態欄的高度(一般為20dp)
效果:
image