7

我正在使用 XOOM 并试图隐藏操作栏。所以我按照说明在清单文件中执行了以下操作:

uses-sdk android:minSdkVersion="11" android:targetSdkVersion="11"

还设置了活动主题。

android:theme="@android:style/Theme.Holo.NoActionBar"

不幸的是,我仍然可以看到操作栏。所以我从清单中删除了全息动作部分并添加了以下代码

ActionBar actionBar = getActionBar(); actionBar.hide();

从 hide() 方法获取空指针异常。所以我知道 getActionBar() 正在返回 null。现在我很好奇我错过了什么?

4

5 回答 5

19

Theme.Holo.NoActionBar 在框架中不公开——相反,您可以像这样声明自己的样式:

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
</style>
于 2011-06-06T22:58:13.887 回答
7

我得出了完全相同的结论。如果您无法在屏幕上显示 ActionBar,则很可能是:

  • 窗口没有标题;ActionBar 本质上是一个美化的标题栏,因此没有标题 = 没有 ActionBar,尽管文档中没有提到这一点

  • 您尝试在活动中设置内容视图之前调用 getActionBar() 方法。在这种情况下,此方法返回 null。同样,文档中没有提到任何地方,如果您尝试将 ActionBar 构造/修改为自定义视图构造函数的一部分,那么您就不走运了。

更多关于我对 Honeycomb 中 ActionBar 的探索可以在我的博客上找到

于 2011-08-22T10:24:29.393 回答
3

您可以隐藏操作栏(将显示在屏幕顶部)。如果您的活动是选项卡活动,则在 setcontentview 行之后使用以下行

getParent().getActionBar().hide(); 

如果这是正常活动,则使用

getActionBar().hide(); 

清单上的设置也对我有用,但仅限于您可以像这样设置的特定活动,而不是应用程序。

android:theme="@android:style/Theme.Holo.NoActionBar"
于 2011-05-17T09:40:08.143 回答
2

这对我有帮助.. 像这样编辑 values/styles.xml

<resources>

<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar" />

</resources>
于 2012-09-07T09:58:26.693 回答
-8

Honeycomb 中的操作栏无法隐藏,因为没有物理按钮可以退出应用程序,因此如果操作栏隐藏,您可能会将用户困在应用程序中。您可以做的最好的事情是将栏置于“熄灯”模式,在该模式下,您可以用小点代替栏中的正常图标。

请参阅此链接: Android 3.0 中是否可以隐藏系统栏?这是一个内部设备,我正在管理导航

于 2011-05-06T18:17:21.880 回答