隐藏标题栏如果它不是ActionBar - 在setContentView之前预测ActionBar存在?

时间:2011-10-23 23:07:26

标签: android android-layout android-actionbar android-windowmanager

如果我的全屏首选项(默认情况下已关闭)处于启用状态,我希望我的“活动”隐藏标题栏以及通知栏。我可以使用requestWindowFeature(Window.FEATURE_NO_TITLE); + FLAG_FULLSCREEN等或setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);

来实现这一目标

其中任何一个必须在 setContentView()之前发生,否则会崩溃。困难的部分是:

  • 我的目标是API级别3到14,如果Activity不打算使用ActionBar,我只想隐藏标题栏。否则,FEATURE_NO_TITLE将隐藏ActionBar并丢失一些重要控件。 (我会选择“熄灯”模式。)
  • 我看不清楚如何在之后 setContentView()使用ActionBar,而为时已晚。

不起作用的事情:

  • getActionBar()在此早期阶段返回null。
  • getWindow.hasFeature(Window.FEATURE_ACTION_BAR)是假的。
  • 知道(通过反思)ActionBar作为一个类存在是不够的,因为,坚持使用默认设备主题,即使平台有它,也可能并不总是在某些Ice Cream Sandwich设备上使用ActionBar。 (?)
    • 或者:我可以依靠ICS总是有一个ActionBar吗?为什么?
    • 编辑:好吧,也许ICS的标题栏仍然是一个ActionBar,只是没有项目,甚至没有溢出按钮? (在这种情况下,我仍然想隐藏它。)任何人都可以在那里放光吗?

有什么想法吗? : - )

2 个答案:

答案 0 :(得分:1)

我认为您想要使用的是ActionBarSherlock。它会为您处理所有反射和API级别检测。

答案 1 :(得分:1)

是否可以执行建议herehere之类的操作?基本上指定在某些api级别上,隐藏标题栏(因为您将拥有操作栏)。