• 【转】 Pro Android学习笔记(四九):ActionBar(2):Action图标区


    目录(?)[-]

    1. ActionBar的隐藏和现实
    2. ActionBar的action图标区

    ActionBar的隐藏和现实

    ActionBar bar = getActionBar();
    bar.hide();  //隐藏Action Bar
    bar.show(); //显示Action Bar

    ActionBar的action图标区

    ActionBar的右侧就是action图标区域,如下图所示

    这是ActionBar的menu区域,作为options menu的一部分,选择部分的菜单项在action bar中显示。我们先看看源代码,没有什么特别。小例子是在上一学习的例子上进行添加,直接采用继承方式。

    public class ActionAreaTestCase2 extends HomePressTestCase1{ 
        @Override 
        public boolean onCreateOptionsMenu(Menu menu) { 
            MenuInflater inflater = getMenuInflater(); 
            inflater.inflate(R.menu.bar, menu); 
            return true; 
        } 

        @Override 
        public boolean onOptionsItemSelected(MenuItem item) { 
            showInfo("select : " + item.getTitle()); 
            return super.onOptionsItemSelected(item); 
        } 

    关键看看R.menu.bar的xml是如何设置。

    <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" > 
        <item android:id="@+id/menu_action_icon1" 
                android:title="Action1" 
                android:icon="@drawable/creep001" 
                android:showAsAction="ifRoom"/<!-- 与一般的item相比,增加了showAsAction的设置,表明在action bar中显示的情况,除了ifRoom,还有always、never、withText。也可以在代码中通过menuItem.setShowAsAction(int)来实现 -->
        <item android:id="@+id/menu_action_icon2" 
                android:title="Action2" 
                android:icon="@drawable/creep002" 
                android:showAsAction="ifRoom"/> 
        <item android:id="@+id/menu_action_icon3" 
                android:title="Action3" 
                android:icon="@drawable/creep003" 
                android:showAsAction="ifRoom"/> 
         ... ... 
    </menu>

    如果我们要求在action bar显示的菜单项太多,超过action bar的空间时,则在普通的OptionsMenu位置显示,例如我们设置了6个菜单项,属性均有:android:showAsAction="ifRoom",显示如下:

    如果在menu的xml文件中,有些属性没有设置为showAsAction,则这些item按常规的菜单方式显示。如下图:Normal的item是普通的菜单项:

    如果我们没有设置图标,只设置了title,则显示文字,xml片段如下:

    <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:id="@+id/menu_action_icon1" 
                android:title="Action1" 
                android:showAsAction="ifRoom"/> <!-- 没有icon的例子 -->
        <item android:id="@+id/menu_action_icon2" 
                android:title="Action2" 
                android:icon="@drawable/creep002" 
                android:showAsAction="ifRoom|withText"/> <!-- 同时显示icon和文字的例子 --> 
        … … 
    </menu> 

    本博文涉及的例子代码,可以在Pro Android学习:ActionBar小例子中下载。

    相关链接: 我的Android开发相关文章

  • 相关阅读:
    【算法研究】目标检测
    【Java学习笔记】Java中方法和成员变量的访问控制
    DevExpress XtraReports 入门一 创建 Hello World 报表
    整理点dropdownList的应用
    Developer Express 之 XtraReport报表预览控件PrintControl设置
    C#实现winform仿div+css半透明遮罩效果
    动态传递参数到DevExpress.XtraReports的小结 .
    Developer Express 之 XtraReport如何显示设计窗体,打开已设计过的报表
    Developer Express 之 XtraReport如何动态绑定数据
    c#判断右键菜单(ContextMenuStrip)是从哪个控件弹出来的方法
  • 原文地址:https://www.cnblogs.com/blongfree/p/5047994.html
Copyright © 2020-2023  润新知