【问题标题】:Using SystemUiHider to keep the navigation bar hidden使用 SystemUiHider 隐藏导航栏
【发布时间】: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.setOnClickListeneronClick 方法中调用mSystemUiHider.show();(以防止显示)
  • 我还在 android.view 的文档中看到了 setSystemUiVisibility 示例(再次尝试在显示或可见性更改时立即隐藏它)

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

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

【问题讨论】:

标签: android uinavigationbar fullscreen android-fullscreen


【解决方案1】:

【讨论】:

  • 我从我尝试过的四种方法的实验中意识到了这一点。我的问题是是否可以覆盖这种行为(有或没有 root 访问权限)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 2019-12-27
相关资源
最近更新 更多