8

在旧版本的 Android 中,必须使用:android:theme="@android:style/Theme.NoTitleBar.Fullscreen"在清单中使标题栏消失。

在较新的 ADT 版本中,我注意到一个SystemUiHider类,它允许您调用它的hide()方法来删除不仅标题栏,还删除操作栏和导航栏。

我正在尝试编写一个全屏应用程序,除非按下一个小的隐藏按钮,否则我希望保持全屏状态(用于信息亭实现)。

我尝试采用标准 FullscreenActivity(从新的 android 项目向导生成),并以多种方式防止 UI 重新出现:

  • 调用mSystemUiHider.hide()in setOnVisibilityChangeListener(在检测到可见性变化时尝试立即隐藏 UI)
  • 设置:(AUTO_HIDE_DELAY_MILLIS = 0尝试在可见时立即隐藏它)
  • 防止在方法mSystemUiHider.show();内调用(以防止显示)onClickcontentView.setOnClickListener
  • 我还在setSystemUiVisibilityandroid.view 的文档中看到了示例(如果显示或可见性发生更改,再次尝试立即隐藏它)

它们似乎都不起作用(当尝试其中任何一种时,Android 默认为导航栏的低调模式。

我知道他们可能不希望开发人员做我想做的事情,但我希望我可以扩展SystemUiHider(和/或SystemUiHiderBase)并覆盖这些show()方法,使其基本上不显示,除非传递一个true标志。我似乎找不到关于这些类的任何文档(也许是因为它们是实用程序类?)。

4

1 回答 1

1

与设备的任何交互都会带回导航栏。

https://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_HIDE_NAVIGATION

于 2013-01-31T13:06:21.830 回答