setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) does not work

后端 未结 5 1992
隐瞒了意图╮
隐瞒了意图╮ 2020-12-03 03:46

I\'ve been battling with setSystemUiVisibility() to try to hide the soft navigation buttons for a while (for a video player). It does not seem to work as advertised. Here is

5条回答
  •  Happy的楠姐
    2020-12-03 04:37

    I use setOnSystemUiVisibilityChangeListener() to make this full screen mode work for me including hiding the navigation bar.

    @Override
    protected void onResume() {
        if (Build.VERSION.SDK_INT >= 16) {
            getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(
                    new OnSystemUiVisibilityChangeListener() {
                        @Override
                        public void onSystemUiVisibilityChange(int visibility) {
                            if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                                getActionBar().show();
                            } else {
                                int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                        | View.SYSTEM_UI_FLAG_LOW_PROFILE
                                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
                                getWindow().getDecorView()
                                        .setSystemUiVisibility(mUIFlag);
                                getActionBar().hide();
                            }
                        }
                    });
        }
    
        super.onResume();
    }
    

    it seems that android only trigger the setSystemUiVisibility() when inside the listener.

提交回复
热议问题