首页 > 解决方案 > 隐藏按钮返回、主页、Android 应用程序

问题描述

我无法正确实现如何隐藏位于底部/页脚的按钮。返回、主页、应用程序这 3 个按钮。我正在实现这段代码,它工作正常,它隐藏了顶部导航栏和页脚。但问题是当我单击出现虚拟键盘的 EditText 时。完成您要编写的内容后,返回、主页、应用程序 3 个按钮。它们又回来了。我需要实施什么?我究竟做错了什么?

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        hideSystemUI();
    }
}
private void hideSystemUI() {
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                    | 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);
}

标签: javaandroidkeyboard

解决方案


只需将视图返回到侦听器onCreate!一旦我实现了这段代码。我给你这个样本:

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState); 

    View decorView = hideSystemUI();
        decorView.setOnSystemUiVisibilityChangeListener(new 
    View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            hideSystemUI();
        }
    });
}

private View hideSystemUI() {
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(
         View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
             | 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);
    return decorview;
}

推荐阅读