Java Android:如何强制导航栏在三星Galaxy S8上可见
在Android应用程序中,是否可以强制应用程序始终显示在导航栏上?在三星Galaxy S8上,用户可以在“运行时”隐藏导航栏,这会导致应用程序中出现一些意外行为(如果您感兴趣,我尝试在视图上添加SetOnSystemMivibilityChangeListener,并在没有运气的情况下重新绘制、无效、requestLayout和forceLayout。重新启动活动不适用,因为该应用程序是一个单一的活动应用程序。我也在没有运气的情况下查看了WindowInsets。)Java Android:如何强制导航栏在三星Galaxy S8上可见,java,android,android-navigation-bar,Java,Android,Android Navigation Bar,在Android应用程序中,是否可以强制应用程序始终显示在导航栏上?在三星Galaxy S8上,用户可以在“运行时”隐藏导航栏,这会导致应用程序中出现一些意外行为(如果您感兴趣,我尝试在视图上添加SetOnSystemMivibilityChangeListener,并在没有运气的情况下重新绘制、无效、requestLayout和forceLayout。重新启动活动不适用,因为该应用程序是一个单一的活动应用程序。我也在没有运气的情况下查看了WindowInsets。) 因此,我只想通过不允许用户
因此,我只想通过不允许用户删除导航栏来避免问题。我在网上找到的所有资源都是用来隐藏导航栏的。有人对如何保留导航栏有什么建议吗?我对三星S8不太确定,但我曾在三星S7上工作过。我使用了后倾模式
设置系统兼容性()
并传递了这两个标志
1.SYSTEM\u UI\u FLAG\u全屏
2.
SYSTEM\u UI\u FLAG\u HIDE\u导航
同样为了启用沉浸式模式,我结合使用了
SYSTEM\u UI\u FLAG\u immersive
它是从&
如果我错了或者我不理解这个问题,请纠正我。这对我很有用:
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
运气好吗?s8的导航栏弄乱了很多人的应用程序。我的也包括在内。强制它总是关闭或打开,而用户不能自己切换。不,不幸的是没有…我同意!我在这个Christopher上取得了进展。我找到了如何禁用切换的方法,但没有意味着用户无法显示导航栏。他们可以向上滑动导航栏,但导航栏不会锁定。此外,如果用户界面变得混乱,唯一的解决方案是添加侦听器并重新调整(测量)视图和位置相应。这对我的应用程序来说如此麻烦的原因是因为我使用了大量依赖y线的动画。y线需要动态,这取决于导航条是否存在。哦,很好!使其不粘滞是一个完美的解决方案!你介意解释一下你做了什么吗?克里斯托弗,看一看t点击此处。DecorView的systemUiVisibility选项可定制为禁用锁定导航条的功能。其作用类似于虚拟键盘启动时,锁定选项将不显示。