1.  获得ActionBar的方法

actionBar = this.getActionBar();

2. 下图所示Actionbar的区域:

2.1 Home图标区域

这里的图标可以在清单文件中定义,也可以在代码中定义,但是在代码中定义需要设置"权限",即添加以下代码

requestWindowFeature(Window.FEATURE_LEFT_ICON);

setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, resId);

而如果想对home图标进行点击事件处理,则需要在为这个icon“使能”:

actionBar.setDisplayHomeAsUpEnabled(true);

此home图标的id便是androi.R.id.home;事件的监听是在public boolean onMenuItemSelected(int featureId, MenuItem item)里面获取的:

@Override

public boolean onMenuItemSelected(int featureId, MenuItem item) {

switch (item.getItemId()) {

case android.R.id.home:

Toast.makeText(this, "home", 1).show();

break;

}

}

2.2 标题区域

actionBar.setDisplayShowTitleEnabled(true);

当然我们也可以给标题栏设置自己的风格,但是那样也必须设置权限:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.custom_title);

然后就可以设置自己想要的布局风格resId为当前风格。

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, resId);

2.3 选项卡区域

这个区域同时有3种不同风格的类型:

ActionBar.NAVIGATION_MODE_TABS

ActionBar.NAVIGATION_MODE_LIST

ActionBar.NAVIGATION_MODE_STANDARD

2.3.1 ActionBar.NAVIGATION_MODE_TABS

代码实现:

actionBar.setTitle("选项卡");

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

actionBar.addTab(actionBar.newTab().setText("Tab1")

.setTabListener(MainActivity.this));

actionBar.addTab(actionBar.newTab().setText("Tab2")

.setTabListener(MainActivity.this));

actionBar.addTab(actionBar.newTab().setText("Tab3")

.setTabListener(MainActivity.this));

2.3.2 ActionBar.NAVIGATION_MODE_LIST

这里必须为tab添加tablistener事件,如果要操作tab切换事件只需要实现监听方法即可。

implements ActionBar.TabListener

当点击第二个按钮时:显示一个可以点击下拉的列表,代码如下

String[] str = { "1", "2", "3", "4", "5" };

actionBar.setTitle("列表");

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

actionBar.setListNavigationCallbacks(new ArrayAdapter(

MainActivity.this,

android.R.layout.simple_spinner_item, str),

MainActivity.this);

需要实现以下它的点击监听事件implements ActionBar.OnNavigationListener 实现接口的方法便可对列表项进行你想要的操作。

2.4.菜单区域

这个区域也就相当于菜单,只是它将menu放到ActionBar这里而已,事件的监听和布局跟操作menu是一样的。

而如果你想要将menu放到ActionBar上,只需要将你需要填放的item添加一个android:showAsAction属性

他同时提供几个可选的类型:

ifRoom|withText 的意思上显示icon和字体

never是从不,

always是总是。

当点击item1这个图标区域时:出现一个:submenu。顾名思义 这个下拉的item就是从属于item1的submenu,如果你想要达到这样的效果,只需要在menu中添加一个submenu便可实现这个效果例如本实例的简单实现:

android:id="@+id/action_settings"

android:icon="@drawable/ic_launcher"

android:orderInCategory="3"

android:showAsAction="ifRoom|withText"

android:title="item1">

android:id="@+id/save"

android:icon="@drawable/ic_launcher"

android:orderInCategory="4"

android:showAsAction="ifRoom|withText"

android:title="item2"/>

android:id="@+id/item8"

android:icon="@drawable/ic_launcher"

android:orderInCategory="5"

android:showAsAction="ifRoom|withText"

android:title="item3"/>

android:id="@+id/item9"

android:icon="@drawable/ic_launcher"

android:orderInCategory="6"

android:showAsAction="ifRoom|withText"

android:title="item4"/>

这样就能达到如此效果。对于item的监听已经强调过,它就是menu的item,所以监听事件的处理在public boolean onMenuItemSelected(int featureId, MenuItem item)

了解了这些,相信大家对这些区域对应的点击事件的处理都不是难事。

android的actionbar及菜单机制,Android ActionBar基本使用方法相关推荐

  1. android 弹出网格菜单,在android中的recyclerView中显示弹出按钮的确...

    as per my above comment可以使用Popup Menu Android Popup Menu displays the menu below the anchor text if ...

  2. Android界面编程--使用活动条(ActionBar)--通过ActionBar菜单改变TextView的字体和颜色...

    android:orientation="vertical"(AndroidStudio不提示,这个要记住了) 昨天好不容易把ActionBar从溢出菜单overflow中弄出来了 ...

  3. Android 4 学习(20):ActionBar

    参考<Pro Android 4.0> ActionBar 11.0之后,ActionBar在Activity中默认存在,可以在代码中设置其显示与否: ActionBar actionBa ...

  4. android 4个button 田字布局,ActionBar简介

    ActionBar是Android 3.0以后Anrdoid系统增加的导航栏功能控件.它标识了用户当前操作界面的位置,并提供了额外的用户动作.界面导航等功能.使用ActionBar的好处是,它可以给提 ...

  5. 【转】Android实例剖析笔记(二)--用实例讲解Andriod的开发过程,以NotesList为实例介绍Android的菜单机制...

    原文网址:http://kb.cnblogs.com/page/78304/ 简介 android提供了三种菜单类型,分别为options menu,context menu,sub menu. op ...

  6. android 视频的缩略图 缓存机制和 异步加载缩略图

    在这次的工作开发项目中,涉及到一个视频缩略图的视频列表:这个在大家看来,制作视频缩略图就是两行代码就搞定的事.确实是这样的,百度一下,每个帖子都知道制作视频缩略图的方法,在这里确实也是一样的,但是我要 ...

  7. android异步加载视频缩略图,Android 视频缩略图的缓存机制和异步加载

    关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java 在这次的工作开发项目中,涉及到一个视频缩略图的视频列表:这个在大家看来,制作视频缩略图就是两行代码就搞定的事.确 ...

  8. Android 动态更新Menu菜单

    1. 需求描述 Android Menu菜单是比较常见的功能,在ActionBar  or ToolBar上显示,点击更多(3个点),会有下拉列表菜单展示,  在工作项目中有个小需求改动: 在 Too ...

  9. android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...

最新文章

  1. 数据解读“特殊”春运:“返乡过年”人数同比降五成,这些人成今年春运主力...
  2. sk_buff结构分析
  3. 探索 Java 同步机制[Monitor Object 并发模式在 Java 同步机制中的实现]
  4. web相关概念回顾|| 部署项目的方式
  5. 1 加到 100 的 时间复杂度 C#.
  6. HashMap两种遍历数据的方式
  7. 软件工程---2.软件过程
  8. AtCoder Beginner Contest 171 E - Red Scarf
  9. 42. 添加 Expires 头(3)
  10. web自动化知识点-03
  11. 使用分层的方法设计 机器人软件
  12. 制作未来计算机的ppt模板,计算机毕业设计ppt模板.doc
  13. linux 下 cents os 7 下 安装JDK JRE TOMCAT 并配置环境变量
  14. 「科普」带你认识5G基站
  15. XSCTF联合招新【Simple-Math】(MSIC+Crypto)
  16. QMS-云质-质量管理-质量控制中的常见误区(1): Cr=0
  17. hive join 时的bug,使用left join 可以规避
  18. 手游《奔跑吧?骚年!》技术分享(四):矩形碰撞检测
  19. linux 文本编辑器_Linux排名前7位的最佳文本编辑器
  20. react实现div隐藏_React 点击按钮显示div与隐藏div

热门文章

  1. python深度学习第二讲——用python写深度学习损失函数
  2. PyTorch实战福利从入门到精通之六——线性回归
  3. 抽象工厂模式java_Java描述设计模式(04):抽象工厂模式
  4. 新疆农业大学的计算机专业的分数线是多少,2017新疆农业大学科学技术学院专业排名及分数线...
  5. unity如何得到所有子对象_Unity用户手册-Mesh合批
  6. Restricted Boltzmann Machine (RBM)限制波尔兹曼机
  7. MySQL 支持的数据类型
  8. python接口自动化(十二)--https请求(SSL)(详解)
  9. 计算机科学与技术素材,计算机科学与技术ppt素材
  10. linux服务端口加密,linux – 如何通过单个端口处理加密和未加密的http连接