目录(?)[-]

  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开发相关文章

【转】 Pro Android学习笔记(四九):ActionBar(2):Action图标区的更多相关文章

  1. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  2. 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式

    可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和 ...

  3. 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...

  4. 【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET

    目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用ser ...

  5. 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode

    目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...

  6. 【转】 Pro Android学习笔记(五六):配置变化

    目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...

  7. 【转】 Pro Android学习笔记(四二):Fragment(7):切换效果

    目录(?)[-] 利用setTransition 利用setCustomAnimations 通过ObjectAnimator自定义动态效果 程序代码的编写 利用fragment transactio ...

  8. 【转】 Pro Android学习笔记(四十):Fragment(5):适应不同屏幕或排版

    目录(?)[-] 设置横排和竖排的不同排版风格 改写代码 对于fragment,经常涉及不同屏幕尺寸和不同的排版风格.我们在基础小例子上做一下改动,在横排的时候,仍是现实左右两个fragment,在竖 ...

  9. 【转】 Pro Android学习笔记(三五):Menu(6):XML方式 & PopUp菜单

    目录(?)[-] 利用XML创建菜单 XML的有关属性 onClick事件 Pop-up菜单 利用XML创建菜单 在代码中对每个菜单项进行设置,繁琐且修改不灵活,不能适配多国语言的要求,可以利用资源进 ...

随机推荐

  1. Zabbix-Agent 客户端安装配置

    1.安装Zabbix官方的yum源 [root@crazy-acong ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zab ...

  2. 洛谷P2402 奶牛隐藏

    洛谷P2402 奶牛隐藏 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地. ...

  3. PAT 1063. 计算谱半径(20)

    在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界.换言之,对于给定的n个复数空间的特征值{a1+b1i, ..., an+bni},它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模. ...

  4. python+NLTK 自然语言学习处理四:获取文本语料和词汇资源

    在前面我们通过from nltk.book import *的方式获取了一些预定义的文本.本章将讨论各种文本语料库 1 古腾堡语料库 古腾堡是一个大型的电子图书在线网站,网址是http://www.g ...

  5. 解决oracle锁表

    1.查看被锁住的表select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects ...

  6. activiti 基础搭建

    首先在eclipse内添加activiti的插件,https://blog.csdn.net/qq_22701869/article/details/79537971 1.创建一个maven的java ...

  7. 1django 视图与网址

    创建一个项目,名字叫mysite django-admin startproject mysite(项目名) 成功后,看到如下样式 mysite ├── manage.py └── mysite ├─ ...

  8. ubuntu切换到root

    sudo+命令,输入当前用户密码后以root权限执行命令,有时间限制且仅限当前命令. sudo -i,输入当前用户密码后以root权限登录shell,无时间限制.使用exit或logout退出. su ...

  9. LeetCode:颜色分类【75】

    LeetCode:颜色分类[75] 题目描述 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 ...

  10. 《程序员代码面试指南》第一章 栈和队列 构造数组的MaxTree

    题目 给出一个无重复元素的数组,构造此数组的MaxTree, java代码 /** * @Description: 构造数组的MaxTree * @Author: lizhouwei * @Creat ...