android的actionbar及菜单机制,Android ActionBar基本使用方法
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基本使用方法相关推荐
- android 弹出网格菜单,在android中的recyclerView中显示弹出按钮的确...
as per my above comment可以使用Popup Menu Android Popup Menu displays the menu below the anchor text if ...
- Android界面编程--使用活动条(ActionBar)--通过ActionBar菜单改变TextView的字体和颜色...
android:orientation="vertical"(AndroidStudio不提示,这个要记住了) 昨天好不容易把ActionBar从溢出菜单overflow中弄出来了 ...
- Android 4 学习(20):ActionBar
参考<Pro Android 4.0> ActionBar 11.0之后,ActionBar在Activity中默认存在,可以在代码中设置其显示与否: ActionBar actionBa ...
- android 4个button 田字布局,ActionBar简介
ActionBar是Android 3.0以后Anrdoid系统增加的导航栏功能控件.它标识了用户当前操作界面的位置,并提供了额外的用户动作.界面导航等功能.使用ActionBar的好处是,它可以给提 ...
- 【转】Android实例剖析笔记(二)--用实例讲解Andriod的开发过程,以NotesList为实例介绍Android的菜单机制...
原文网址:http://kb.cnblogs.com/page/78304/ 简介 android提供了三种菜单类型,分别为options menu,context menu,sub menu. op ...
- android 视频的缩略图 缓存机制和 异步加载缩略图
在这次的工作开发项目中,涉及到一个视频缩略图的视频列表:这个在大家看来,制作视频缩略图就是两行代码就搞定的事.确实是这样的,百度一下,每个帖子都知道制作视频缩略图的方法,在这里确实也是一样的,但是我要 ...
- android异步加载视频缩略图,Android 视频缩略图的缓存机制和异步加载
关注微信号:javalearns 随时随地学Java 或扫一扫 随时随地学Java 在这次的工作开发项目中,涉及到一个视频缩略图的视频列表:这个在大家看来,制作视频缩略图就是两行代码就搞定的事.确 ...
- Android 动态更新Menu菜单
1. 需求描述 Android Menu菜单是比较常见的功能,在ActionBar or ToolBar上显示,点击更多(3个点),会有下拉列表菜单展示, 在工作项目中有个小需求改动: 在 Too ...
- android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...
最新文章
- 数据解读“特殊”春运:“返乡过年”人数同比降五成,这些人成今年春运主力...
- sk_buff结构分析
- 探索 Java 同步机制[Monitor Object 并发模式在 Java 同步机制中的实现]
- web相关概念回顾|| 部署项目的方式
- 1 加到 100 的 时间复杂度 C#.
- HashMap两种遍历数据的方式
- 软件工程---2.软件过程
- AtCoder Beginner Contest 171 E - Red Scarf
- 42. 添加 Expires 头(3)
- web自动化知识点-03
- 使用分层的方法设计 机器人软件
- 制作未来计算机的ppt模板,计算机毕业设计ppt模板.doc
- linux 下 cents os 7 下 安装JDK JRE TOMCAT 并配置环境变量
- 「科普」带你认识5G基站
- XSCTF联合招新【Simple-Math】(MSIC+Crypto)
- QMS-云质-质量管理-质量控制中的常见误区(1): Cr=0
- hive join 时的bug,使用left join 可以规避
- 手游《奔跑吧?骚年!》技术分享(四):矩形碰撞检测
- linux 文本编辑器_Linux排名前7位的最佳文本编辑器
- react实现div隐藏_React 点击按钮显示div与隐藏div
热门文章
- python深度学习第二讲——用python写深度学习损失函数
- PyTorch实战福利从入门到精通之六——线性回归
- 抽象工厂模式java_Java描述设计模式(04):抽象工厂模式
- 新疆农业大学的计算机专业的分数线是多少,2017新疆农业大学科学技术学院专业排名及分数线...
- unity如何得到所有子对象_Unity用户手册-Mesh合批
- Restricted Boltzmann Machine (RBM)限制波尔兹曼机
- MySQL 支持的数据类型
- python接口自动化(十二)--https请求(SSL)(详解)
- 计算机科学与技术素材,计算机科学与技术ppt素材
- linux服务端口加密,linux – 如何通过单个端口处理加密和未加密的http连接