Android 4.0:从Activity而不是View设置SYSTEM_UI_FLAG_LOW_PROFILE&SYSTEM_UI_FLAG_HIDE_NAVIGATION

Gre*_*ius 2 android uinavigationbar android-4.0-ice-cream-sandwich

我正在玩控制ICS中的UI导航按钮.

抑制Nav按钮的当前机制是使用SYSTEM_UI_FLAG_HIDE_NAVIGATION或SYSTEM_UI_FLAG_LOW_PROFILE标志从View调用setSystemUiVisibility.这似乎是设置这些标志的一个奇怪的地方,因为大多数其他相关设置(例如隐藏状态栏)已通过窗口LayoutParams属性完成.

我的问题是,如果你们中的任何人都有一个想法,可以从一个活动环境中找到一个好方法.目前,我的应用程序旨在从基本活动类开始,该类包含我在整个应用程序中需要的任何功能.然后从该基类派生特定活动.我希望能够从该基本Activity设置UI导航标志,所以我不必在我的源代码中的多个位置执行它...但我的基本Activity不包含任何View对象.

作为次要陈述,我真正希望能够做的是完全删除NAV按钮(例如使用SYSTEM_UI_FLAG_HIDE_NAVIGATION),而不是让他们回到用户输入(让我的应用程序完全控制UI).我知道这不是市场上任何应用程序都能做到的......但我没有开发出可以通过市场获得的东西.我目前的计划涉及一个自定义构建的操作系统,这将允许我完成这一点,但如果有一些方法在此期间消除这些软按钮将是很好的.

谢谢!

Wil*_*ard 5

这就是我对我的活动的创造:

View main_layout = dialog.findViewById(android.R.id.content).getRootView();
main_layout.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

这几乎就像从活动上下文中调用它.至少它不依赖于在编译时定义视图.我知道STATUS_BAR_HIDDEN已被弃用,但我现在无法编译SYSTEM_UI_FLAG_LOW_PROFILE ...

但+1对"这对于这些设置来说似乎是一个奇怪的地方".应该是您可以在清单中为整个应用程序定义一次.

  • 自API级别11以来,不推荐使用View.STATUS_BAR_HIDDEN.使用View.SYSTEM_UI_FLAG_LOW_PROFILE. (4认同)