2011-05-06 129 views
6

我正在使用XOOM并尝试隐藏操作栏。所以我按照指令清单文件做了以下 :Android(3.0)Action Bar不想去

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

还设置活动主题。

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

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

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

正从隐藏()方法零指示字例外。所以我明白getActionBar()返回null。现在我很好奇我失踪了什么?

回答

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> 
+0

我想实现这个方法操作栏抑制,但当我尝试将父母设置为android:Theme.Holo.Light时出现错误。我也试过@android:Theme.Holo.Light。请帮助我一直在用我的头撞我的键盘,试图找出这个问题。 – aamiri 2012-05-08 18:00:25

+0

你得到什么错误?你有什么平台版本?你测试什么设备? – 2012-05-08 21:00:59

+0

我还没有到测试的地步,我只是想编译。我在清单中的minSDK要求是api level 8,但是我的目标api是11.实际上有两个错误,我得到:错误:“错误检索项目的父项:找不到与给定名称匹配的资源 '@android:Theme .Holo.Light”。” 和 “错误:找不到与给定名称相匹配的资源:attr'android:windowActionBar'。” – aamiri 2012-05-08 21:12:22

-9

Honeycomb中的操作栏无法隐藏,因为没有物理按钮可退出应用程序,所以如果隐藏操作栏,则可以将用户锁定在应用程序中。你可以做的最好的是把酒吧放在“熄灯”模式,在那里你可以用小点代替酒吧里的普通图标。

请参阅此链接: Is there a way to hide the system bar in Android 3.0? It's an internal device and I'm managing navigation

+1

OP XML是指行动起来吧,这是与沿底部运行栏单独的,包括后面的/ home /等(沿上运行) – 2011-06-06 22:57:43

3

可以隐藏操作栏(将在屏幕顶部显示)。如果你的活动标签活动,则使用以下线的setContentView线

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

后,如果这是一个正常的活动,然后使用

getActionBar().hide(); 

而且对舱单,也为我工作,但只您可以像这样设置的特定活动不适用于应用程序。

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

我来到了完全同样的结论。如果你不能让屏幕上的动作条显示它是最有可能的两种:

  • 窗口没有标题; ActionBar本质上是一个荣耀的标题栏,因此没有标题=没有ActionBar,尽管这在文档中没有提及

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

更多关于在蜂窝can be found on my blog here

2

我动作条的探索帮我..编辑的值/风格。这样

<resources> 

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

</resources>