使用SystemUiHider保持导航栏隐藏

时间:2013-01-28 02:20:21

标签: android uinavigationbar fullscreen android-fullscreen

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

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

我正在尝试编写一个全屏应用程序,我希望保持全屏(对于自助服务终端实施),除非按下一个小的隐藏按钮。

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

  • mSystemUiHider.hide()中调用setOnVisibilityChangeListener(尝试在检测到可见性更改时立即隐藏UI)
  • 设置:AUTO_HIDE_DELAY_MILLIS = 0(如果可见则立即隐藏)
  • mSystemUiHider.show();的{​​{1}}方法中阻止对onClick的调用(以防止其被显示)
  • 我还在android.view的文档中看到了contentView.setOnClickListener示例(如果显示或可见性发生变化,请再次尝试隐藏它)

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

我知道他们可能不希望开发人员做我正在尝试做的事情,但我希望我可以扩展setSystemUiVisibility(和/或SystemUiHider)并覆盖{{ 1}}除非传递SystemUiHiderBase标志,否则基本上不显示的方法。我似乎无法在这些类中找到任何文档(也许是因为它们是实用程序类?)。

1 个答案:

答案 0 :(得分:1)