那些年我理解的沉浸式狀態列?OR透明化狀態列?
阿新 • • 發佈:2019-02-17
突然看到了郭神的關於講解沉浸式狀態列的部落格,我也覺得我有必要做一下筆記。
首先,我們絕大多數人所理解的沉浸式狀態列都不是真正意義上的沉浸式狀態列,我們所理解的沉浸式狀態列用透明化狀態列來形容非常貼合。
一個android應用的介面元素:頂部狀態列,頂部下面的actionbar,中間我們開發者的layout,底部的導航欄組成;底部導航欄就是華為手機大家看到的返回鍵那一欄。如下圖:
Android怎麼設定狀態列的顏色呢?首先透明化狀態列只有API21以上,也就是android5.0才有的
if (Build.VERSION.SDK_INT >= 21 ) {
//獲取到了當前介面的DecorView
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
//通過setSystemUiVisibility方法系統UI元素的可見性
decorView.setSystemUiVisibility (option);
//設定狀態列顏色
getWindow().setStatusBarColor(Color.RED);
//設定底部導航欄
getWindow().setNavigationBarColor(Color.TRANSPARENT);
}
這裡設定完之後就是隱藏actionbar了
ActionBar supportActionBar = getSupportActionBar();//獲取actionbar
supportActionBar.hide ();//隱藏actionbar
隱藏底部導航欄:
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
decorView.setSystemUiVisibility(option);