【发布时间】:2013-01-28 02:20:20
【问题描述】:
在旧版本的 Android 中,必须在清单中使用:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 才能使标题栏消失。
在较新的 ADT 版本中,我注意到一个 SystemUiHider 类,它可以让您调用它的 hide() 方法来删除不仅标题栏,还删除操作栏和导航栏。
我正在尝试编写一个全屏应用程序,我希望保持全屏状态(用于信息亭实现),除非按下一个小的隐藏按钮。
我尝试采用标准 FullscreenActivity(从新的 android 项目向导生成),并以多种方式防止 UI 重新出现:
- 在
setOnVisibilityChangeListener中调用mSystemUiHider.hide()(尝试在检测到可见性变化时立即隐藏 UI) - 设置:
AUTO_HIDE_DELAY_MILLIS = 0(尝试在可见时立即隐藏) - 防止在
contentView.setOnClickListener的onClick方法中调用mSystemUiHider.show();(以防止显示) - 我还在 android.view 的文档中看到了
setSystemUiVisibility示例(再次尝试在显示或可见性更改时立即隐藏它)
它们似乎都不起作用(当尝试其中任何一个时,Android 默认为导航栏的低调模式。
我知道他们可能不希望开发人员做我想做的事情,但我希望我可以扩展 SystemUiHider(和/或 SystemUiHiderBase)并覆盖 show() 方法本质上除非通过 true 标志,否则不显示。我似乎找不到关于这些类的任何文档(可能是因为它们是实用程序类?)。
【问题讨论】:
-
必须有一个解决方案,MXPlayer 应用程序通过锁定按钮很好地解决了这个问题。
标签: android uinavigationbar fullscreen android-fullscreen