Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 隐藏的导航栏(带主页、返回和概览按钮的底部栏)在显示对话框后或编辑文本获得焦点时可见_Android_Android Edittext_Android Dialog_Android Fullscreen - Fatal编程技术网

Android 隐藏的导航栏(带主页、返回和概览按钮的底部栏)在显示对话框后或编辑文本获得焦点时可见

Android 隐藏的导航栏(带主页、返回和概览按钮的底部栏)在显示对话框后或编辑文本获得焦点时可见,android,android-edittext,android-dialog,android-fullscreen,Android,Android Edittext,Android Dialog,Android Fullscreen,有一个全屏活动,使用以下代码块实现相同的功能: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLA

有一个全屏活动,使用以下代码块实现相同的功能:

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

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_main);

// ….
}

@Override
    protected void onResume() {
        Log.i(TAG, "onResume");

        super.onResume();
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                        // Set the content to appear under the system bars so that the
                        // content doesn't resize when the system bars hide and show.
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        // Hide the nav bar and status bar
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN);
    }
但是,当显示自定义对话框或edittext获得焦点时,底部导航栏将可见并保持不变。 官方文件说:

如果一个新的活动或对话框出现在前台,聚焦 以及部分涵盖进行中的活动,即涵盖的活动 失去焦点并进入暂停状态。然后,系统调用 onPause()在它上面

当覆盖的活动返回前台并重新聚焦时, 它调用onResume()

但是当对话框失去焦点(通过日志检查)时,不会调用
onResume()

还尝试在自定义对话框的onCreate()中添加以下代码:

View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                        // Set the content to appear under the system bars so that the
                        // content doesn't resize when the system bars hide and show.
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        // Hide the nav bar and status bar
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN);
添加上述代码后,当自定义对话框位于前台时,导航栏会隐藏,但当它失去焦点时,导航栏会弹出到屏幕上

还尝试使用样式设置全屏模式。请参阅下文

<style name="FullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="android:windowContentTransitions">true</item>
</style>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音
真的
edittext也是如此。“活动”以全屏模式启动,但一旦edittext获得焦点,底部导航栏就会显示并保持不变

如有任何意见,将不胜感激

干杯

试试这段代码

fun View.setImmersiveMode() {
    isFocusableInTouchMode = false
    setOnClickListener {
        requestFocusFromTouch()
    }
}
editText.setImmersiveMode()

你找到解决这个问题的办法了吗?