【发布时间】:2018-10-01 21:20:08
【问题描述】:
是否可以强制应用始终显示到 Android 应用中的导航栏?在三星 Galaxy S8 上,用户可以在“运行时”期间隐藏导航栏——这会导致应用程序出现一些意外行为(如果您有兴趣;我尝试添加 setOnSystemUiVisibilityChangeListener 并在视图上重绘、无效、requestLayout 和 forceLayout没有运气。重新启动活动不适用,因为该应用程序是单活动应用程序。我也查看了 WindowInsets,但也没有运气。)。
因此,我只是想通过不允许用户删除导航栏来避免这个问题。我可以在网上找到的所有资源都是用于隐藏导航栏。有人对如何让它留下来有什么建议吗?
【问题讨论】:
-
这有什么好运气吗? s8 的导航栏弄乱了很多人的应用程序。包括我的。在用户无法自行切换的情况下强制它始终关闭或打开会很好。
-
不,很遗憾不是...我同意!
-
我在这个 Christopher 上取得了进展。我想出了如何禁用切换,但这并不意味着用户无法显示导航栏。他们可以向上滑动它,但它不会固定。此外,如果您的 UI 变得混乱,唯一的解决方案是添加侦听器并重新调整(测量)视图并相应地定位事物。这对我的应用程序来说如此麻烦的原因是因为我使用了很多依赖 y 线的动画。该 y 线需要是动态的,具体取决于导航栏是否存在。
-
噢,太好了!让它不粘是一个非常好的解决方案!你介意解释一下你做了什么吗?
-
克里斯托弗在这里看这篇文章。可以定制 DecorView 的 systemUiVisibility 选项以禁用固定导航栏的功能。它的作用类似于虚拟键盘启动并且不会显示 pin 选项。 stackoverflow.com/questions/38254127/…
标签: java android android-navigation-bar