2

如果我的全屏首选项(默认关闭)打开,我希望我的 Activity 隐藏标题栏和通知栏。我可以用requestWindowFeature(Window.FEATURE_NO_TITLE);+FLAG_FULLSCREEN等来做到这一点,或者也许setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);

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

  • 我的目标是 API 级别 3 到 14,如果 Activity 不打算使用 ActionBar,我只想隐藏标题栏。否则,FEATURE_NO_TITLE会隐藏 ActionBar 并失去一些重要的控件。(我宁愿选择“熄灯”模式。)
  • 我看不到如何确定 ActionBar 是否会被使用,直到after setContentView()为时已晚。

不起作用的事情:

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

有任何想法吗?:-)

4

2 回答 2

1

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

于 2011-10-23T23:19:48.693 回答
1

是否有可能做类似这里这里建议的事情?基本上指定在某些 api 级别上隐藏标题栏(因为您将拥有操作栏)。

于 2011-10-23T23:42:53.377 回答