Android 隐藏导航栏/单击按钮时保持沉浸模式

标签 android android-immersive

看似非常简单的事情却给我带来了一些问题。我查看了以下解决方案:

Android Hide Navigation Bar/Stay in Immersive Mode with Soft Keyboard Appearance .

我有一个简单的 Activity ,并且打开了 ImageButton。我想进入沉浸模式。我调用以下方法 onCreate。

问题 屏幕上的第一次单击始终会弹出导航栏,并且不会触发单击处理程序。有没有一种简单/不那么老套的方法来阻止这种情况

 public void hideNavigationBar()
        {
            final View decorView = getWindow().getDecorView();

            int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);

            decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
                @Override
                public void onSystemUiVisibilityChange(int visibility) {
                    if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                        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);
                    }
                }
            });
        }

最佳答案

你必须记住添加这个方法:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && hasFocus) {
        getWindow().getDecorView().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);
    }
}

即使按下按钮或屏幕,它也会自动保持隐藏状态。

关于Android 隐藏导航栏/单击按钮时保持沉浸模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44176208/

相关文章:

java - 如何制作安卓:lineSpacingMultiplier behaves same for both EditText and TextView

Android - 如何在没有画廊 Intent 的情况下阅读屏幕截图

android - 为什么单击弹出菜单时导航栏出现在全屏应用程序中

android - 显示 DialogFragment 时保持沉浸式模式

android:button = 单选按钮中的@null

android - 在android中以编程方式设置按钮半径

android - 自定义启动画面 - Android

android - 打开弹出菜单时如何修复 : Navigation bar icons still showing,(全屏 - 沉浸式粘性)

Android沉浸式下拉菜单,隐藏导航栏