1. 程式人生 > >一個Activity中多個Fragment,個別fragment實現沉浸式狀態列

一個Activity中多個Fragment,個別fragment實現沉浸式狀態列

 

 

 

 

 

 

 

 

如上圖,同一個activity(NoActionBar)有多個fragment的情況下,只有"我的"模組需要設定為沉浸式的狀態列,而其他fragment則不需要設定。實現程式碼如下:

private int oldSystemUiVisibility;
private View decorView;

//初始化
decorView = getWindow().getDecorView();

//設定為透明狀態列
if (Build.VERSION.SDK_INT >= 21) {
    oldSystemUiVisibility = decorView.getSystemUiVisibility();
    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);
}


//取消設定透明狀態列
if (Build.VERSION.SDK_INT >= 21) {
    decorView.setSystemUiVisibility(oldSystemUiVisibility);
}