自定义你的Action Bar
当你的应用程序目标设为蜂巢平台时,你可以利用Action Bar部件提供的全部功能,将你的选项菜单项放在Action Bar的右上角,对用户来说使用更方便,控制该行为的主菜单项属性是android:showAsAction。
这个属性可接受的值有:
1、always:这个值会使菜单项一直显示在Action Bar上。
2、ifRoom:如果有足够的空间,这个值会使菜单项显示在Action Bar上。
3、never:这个值使菜单项永远都不出现在Action Bar上。
4、withText:这个值使菜单项和它的图标,菜单文本一起显示。
我们修改选项菜单资源文件来看看这个属性的不同使用效果,首先,如果你还记得图1的内容,不记得就返回到前面重新观察一下,你就会发现,Action Bar中显示了每个菜单项的图标和它们的名称,换句话说就是,每个菜单项目有以下属性:
android:showAsAction="ifRoom|withText"
另一个合理的设置是显示Action Bar上的每个菜单项,只要有空间,但没有杂乱的文字,换句话说就是,每个菜单项有以下属性:
android:showAsAction="ifRoom"
图5显示了这个变化在典型蜂巢设备上的效果。

▲图 5 当空间足够时,在Action Bar上显示菜单项,包括文本
最后,如果我们不想让Vacuum菜单项显示在Action Bar上,其属性值就应该是:
android:showAsAction="never"
这样在Action Bar上将只会显示两个菜单项:Sweep和Scrub。在右上角,你会再次看到溢出菜单,点击它就会看到被设为“never”的菜单项,如Vacuum,以及其它不适合放在Action Bar上的菜单项,如图6所示。

▲图 6 在Action Bar上显示部分菜单项,其它菜单项永远不显示(显示在溢出菜单中)
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/sweep"
android:icon="@drawable/ic_menu_sweep"
android:title="@string/sweep"
android:onClick="onOptionSweep" />
<item
android:id="@+id/scrub"
android:icon="@drawable/ic_menu_scrub"
android:title="@string/scrub"
android:onClick="onOptionScrub" />
<item
android:id="@+id/vacuum"
android:icon="@drawable/ic_menu_vac"
android:title="@string/vacuum"
android:onClick="onOptionVacuum" />
</menu>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/sweep"
android:icon="@drawable/ic_menu_sweep"
android:title="@string/sweep"
android:onClick="onOptionSweep" />
<item
android:id="@+id/scrub"
android:icon="@drawable/ic_menu_scrub"
android:title="@string/scrub"
android:onClick="onOptionScrub" />
<item
android:id="@+id/vacuum"
android:icon="@drawable/ic_menu_vac"
android:title="@string/vacuum"
android:onClick="onOptionVacuum" />
</menu>