技术开发 频道

明明白白Android平台的Action Bar

  自定义你的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显示了这个变化在典型蜂巢设备上的效果。

自定义你的Action Bar
▲图 5 当空间足够时,在Action Bar上显示菜单项,包括文本

  最后,如果我们不想让Vacuum菜单项显示在Action Bar上,其属性值就应该是:

android:showAsAction="never"

  这样在Action Bar上将只会显示两个菜单项:Sweep和Scrub。在右上角,你会再次看到溢出菜单,点击它就会看到被设为“never”的菜单项,如Vacuum,以及其它不适合放在Action Bar上的菜单项,如图6所示。

自定义你的Action Bar
▲图 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>
0
相关文章