《Android平板电脑开发秘籍》——3.4节技巧:在ActionBar中显示Action项-阿里云开发者社区

开发者社区> 开发与运维> 正文

《Android平板电脑开发秘籍》——3.4节技巧:在ActionBar中显示Action项

简介:

本节书摘来自异步社区《Android平板电脑开发秘籍》一书中的第3章,第3.4节技巧:在ActionBar中显示Action项,作者 【印度】B.M. Harwani,更多章节内容可以访问云栖社区“异步社区”公众号查看

3.4 技巧:在ActionBar中显示Action项
Android平板电脑开发秘籍
为了在ActionBar中显示Action项,需要给菜单项添加android:showAsAction属性,菜单项定义于Menu文件中。showAsAction属性决定了如何显示Action项。showAsAction属性可以是以下值。

always——在ActionBar中显示此Action项。
ifRoom——仅当空间允许时,才在ActionBar中显示此Action项。如果没有足够的空间,此项将显示在Overflow菜单中。
never——总是在Overflow菜单中显示此菜单项。要显示Overflow菜单,请按下AVD的Menu按钮或物理设备的Overflow菜单按钮。
withText——此Action项的标题将与图标(如果有的话)一起显示出来。此属性值可以与其他值组合在一起设置,中间用管道符号“|”分隔。
collapseActionView——使得与Action项关联的Action View可以折叠显示。也就是说,Action View折叠为一个正常Action项的大小。
现在通过运行一个应用程序来学习ActionBar的概念。创建一个名为ActionItemsApp的Android项目。将minSdkVersion和targetSdkVersion属性分别设为14和17。在此应用程序中,将显示两个名为Create和Update的Action项。这两个Action项将显示为ActionBar中的可点击项。可以在菜单文件activity_ action_items_app. xml(文件名由Android项目名称决定)中定义Action项。定义完两个Action项Create和Update后,菜单文件activity_action_items_app.xml应该如代码清单3-1所示。

代码清单3-1 写入菜单文件activity_action_items_app.xml的代码

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/create "
        android:title="Create"
        android:icon="@drawable/create"
        android:orderInCategory="0"
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/update"
        android:title="Update"
        android:icon="@drawable/update"
        android:showAsAction="always" />
</menu>

可以看到,Action项Create被设置为ActionBar空间足够时才显示,且显示标题Create。Action项Update则设为始终显示于ActionBar中。因为要用图标来表示Create和Update项,请把图片文件create.png和update.png复制到应用程序的res/ drawable文件夹中。

现在应用程序可以运行了。不需要在activity_action_items_app.xml Layout文件和ActionItemsAppActivity.java Java Activity文件中添加任何代码。

运行此程序后,将看到两个Action项,如图3-2所示。


190d763aa4e60a12b7cddfe7299a90774901089d

如果Action项只显示了图标,可以长按(按住不放)此项,由android:title属性指定的文字将会以提示信息的形式显示出来。

随着Action项数量的增加,ActionBar中能容纳得下的项将会显示为Action项,其余的会隐藏起来。只要有Action项是不可见的,ActionBar的右侧就会出现一个Overflow菜单按钮。点击这个Overflow菜单按钮后,隐藏的Action项将会就近显示出来。要看到这一现象,请在菜单文件activity_action_items_app.xml中增加Action项的数量,如代码清 单3-2所示。

代码清单3-2 写入菜单文件activity_action_items_app.xml的代码

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/create"
        android:title="Create"
        android:icon="@drawable/create"
        android:orderInCategory="0"
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/update"
        android:title="Update"
        android:icon="@drawable/update"
        android:showAsAction="always" />
    <item android:id="@+id/list_rows"
        android:title="List Rows"
        android:showAsAction="ifRoom" />
    <item android:id="@+id/search_row"
        android:title="Search"
        android:showAsAction="ifRoom" />
    <item android:id="@+id/delete_row"
        android:title="Delete"
        android:showAsAction="never" />
    <item android:id="@+id/insert_row"
        android:title="Insert"
        android:showAsAction="always" />
</menu>

可以看到,这里向ActionBar里添加了4个Action项:List Rows、Search、Delete和Insert。List Row和Search被设为ActionBar空间足够时才显示;否则它们就在Overflow菜单里显示。Delete项将不会显示在ActionBar中,即使有足够的空间也不显示,而是始终显示在Overflow菜单中。Insert项被设置为一直显示在ActionBar中。

运行此应用程序后,会发现6个Action项中的4个在ActionBar中显示出来了,Overflow菜单按钮显示在右侧。ActionBar中可见的Action项是Create、Update、List Rows和Insert(参见图3-3上)。在点击Overflow菜单按钮之后,隐藏的Action项Search和Delete将会显示在Overflow菜单中(见图3-3下)。


f20a892195c1bd43376a29ca1c174ccd6dc525a3

showAsAction属性的collapseActionView值将在“在ActionBar中显示Action View”一节中解释。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章