首页 > 解决方案 > 使用adjustresize时如何隐藏导航栏和全屏?

问题描述

我使用此代码隐藏导航栏。

public void hideNavigation() {
    try {
        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 // hide nav bar
                            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            );

        if (Build.VERSION.SDK_INT > 21) {
            registerSystemUiVisibility();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private void registerSystemUiVisibility() {
    final View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {

        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                hideNavigation();
            }
        }
    });
}

但是当我显示 Dialog 或将 edittext 焦点放在键盘上时,导航栏会再次出现。代码不起作用。你能帮帮我吗?我使用adjustresize,因为键盘显示时固定标题没有滚动。谢谢当键盘显示时: 在此处输入图像描述

键盘隐藏时: 在此处输入图像描述

标签: androidnavigation

解决方案


推荐阅读