永远隐藏导航栏

moh*_*rik 1 java android android-layout android-fragments material-design

我正在尝试永久隐藏导航栏我正在使用沉浸式模式和粘性但是当向上或向下滚动时它再次出现我知道这个问题重复。

  View decorView = getWindow().getDecorView();
        int uiOptions = 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;
        decorView.setSystemUiVisibility(uiOptions);
Run Code Online (Sandbox Code Playgroud)

我在谷歌材料中读到不能永远隐藏这是真的 https://developer.android.com/training/system-ui/navigation 需要建议解决方案

Jed*_*ell 7

您可以使用 ADB 手动完成。
要将其永久置于沉浸模式:

adb shell settings put global policy_control immersive.navigation=*  
Run Code Online (Sandbox Code Playgroud)

要还原它: adb shell settings put global policy_control null*

要“删除”它,您可以通过屏幕视图对其进行过扫描:

adb shell wm overscan 0,0,0,-168  
Run Code Online (Sandbox Code Playgroud)

这个数字可能需要改变,但那个对我有用。
要还原它:adb shell wm 0,0,0,0

如果您必须在您的应用程序中执行此操作,您可以请求 root 访问权限并在应用程序中运行命令:

val command = "settings put global policy_control immersive.navigation=*"
val runtime = Runtime.getRuntime()
runtime.exec("su")
runtime.exec(command.split(" "))
Run Code Online (Sandbox Code Playgroud)