关于 沉浸式状态栏

参考: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);
            }
        });
    }

}

 

 

 

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