關於 沉浸式狀態欄

參考:https://www.jianshu.com/p/752f4551e134 

https://blog.csdn.net/guolin_blog/article/details/51763825#commentsedit

 

沉浸式狀態欄

   // 方法一 實現 全屏顯示 點擊屏幕會消失;
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
            int option = View.SYSTEM_UI_FLAG_FULLSCREEN// 隱藏狀態欄
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;// 隱藏導航欄
//                    |View.SYSTEM_UI_FLAG_LAYOUT_STABLE;

            getWindow().getDecorView().setSystemUiVisibility(option);
            if (getActionBar() != null) {
                getActionBar().hide();
            }
            getWindow().setStatusBarColor(Color.TRANSPARENT);
            getWindow().setNavigationBarColor(Color.TRANSPARENT);

        }

// 方法二 上滑下拉會出現導航欄、狀態欄。Edittext搶焦點 後調用ll_root.setOnSystemUiVisibilityChangeListener 即可恢復 沉浸式狀態欄。
@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);
    }

}
private void initView() {
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {// 解決 Edittext獲取焦點後,退出沉浸式。
        ll_root.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
            @Override
            public void onSystemUiVisibilityChange(int visibility) {
                onWindowFocusChanged(true);
            }
        });
    }

}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章