android添加ActionBar
Action bar 允许我们为当前环境下最重要的操作添加按钮。那些直接出现在 action bar 中的 icon 和/或文本被称作action buttons(操作按钮)。安排不下的或不足够重要的操作被隐藏在 action overflow 中。
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/layout_height_44" android:background="@color/background_yellow" android:contentInsetLeft="0dp" android:contentInsetStart="0dp" android:theme="@style/ToolbarTheme" android:minHeight="?attr/actionBarSize" android:padding="0dp" app:navigationIcon="@mipmap/left_back" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:titleTextAppearance="@style/Toolbar.TitleText"> <TextView android:id="@+id/toolbar_title" style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:textSize="@dimen/text_size_15" android:textColor="@color/textcolor_black"/> <TextView android:id="@+id/toolbar_menu_title" style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:paddingRight="15dp" android:textSize="@dimen/text_size_15"/> </android.support.v7.widget.Toolbar> |
在 XML 中指定操作
所有的操作按钮和 action overflow 中其他可用的条目都被定义在 menu资源 的 XML 文件中。通过在项目的 res/menu
目录中新增一个 XML 文件来为 action bar 添加操作。
为想要添加到 action bar 中的每个条目添加一个 <item>
元素。例如:
res/menu/main_activity_actions.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/toolbar_action1" android:icon="@mipmap/screen" android:title="Action" app:showAsAction="always"/> <item android:id="@+id/toolbar_action2" android:icon="@mipmap/add_right" android:title="Action" app:showAsAction="always"/> </menu> |
上述代码声明,当 action bar 有可用空间时,筛选操作将作为一个操作按钮来显示,但设置操作将一直只在 action overflow 中显示。(默认情况下,所有的操作都显示在 action overflow 中,但为每一个操作指明设计意图是很好的做法。)
icon 属性要求每张图片提供一个 resource ID
。在 @drawable/
之后的名字必须是存储在项目目录 res/drawable/
下位图图片的文件名。例如:ic_action_search.png
对应 "@drawable/ic_action_search"。同样地,title 属性使用通过 XML 文件定义在项目目录 res/values/
中的一个 string 资源
为 Action Bar 添加操作
要为 action bar 布局菜单条目,就要在 activity 中实现 onCreateOptionsMenu() 回调方法来 inflate
菜单资源从而获取 Menu 对象。例如:
@Override public boolean onCreateOptionsMenu(Menu menu) { // 为ActionBar扩展菜单项 MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.main_activity_actions, menu);return super.onCreateOptionsMenu(menu); } |
为操作按钮添加响应事件
当用户按下某一个操作按钮或者 action overflow 中的其他条目,系统将调用 activity 中onOptionsItemSelected()的回调方法。在该方法的实现里面调用MenuItem的getItemId()来判断哪个条目被按下 - 返回的 ID 会匹配我们声明对应的 <item>
元素中 android:id
属性的值。
@Override public boolean onOptionsItemSelected(MenuItem item) { int i = item.getItemId();if (i == R.id.toolbar_action1) { mDrawerLayout.openDrawer(llDrawerContent);return true;} else if (i == R.id.toolbar_action2) {// do something View img = this.findViewById(R.id.toolbar_action2);topRightDialog(img);return true;} else { return super.onOptionsItemSelected(item);} } |
为下级 Activity 添加向上按钮
在不是程序入口的其他所有屏中(activity 不位于主屏时),需要在 action bar 中为用户提供一个导航到逻辑父屏的up button(向上按钮)。
通过调用setDisplayHomeAsUpEnabled() 来把 app icon 设置成可用的向上按钮:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.activity_displaymessage); // 如果你的minSdkVersion属性是11或更高:getSupportActionBar().setDisplayHomeAsUpEnabled(true); } |
android添加ActionBar相关推荐
- Android官方开发文档Training系列课程中文版:添加ActionBar之设置ActionBar
导言- 添加ActionBar 原文地址:http://android.xsoftlab.net/training/basics/actionbar/index.html ActionBar是很多重要 ...
- android开发actionbar,Android 开发之为ActionBar 添加Actionbar Button
前几天做App 的时候,做的比较仓促,就没有添加返回按钮,还有就是MainActivity 的Theme 怎么传递到其他Activity 中,今天无意中看到官方的Train,所以就记下来啦,顺便吧Ac ...
- 【Android】ActionBar的使用(1)
前(fei)言(hua):转行iOS开发半年,很久没接触Android了,前几天去上课,听着实在无聊,随手拿了同学的一本<Android UI设计>,发现有好多基础知识自己虽然用过,但是都 ...
- android 自定义命名空间,Android自定义ActionBar实例
本文实例讲述了android自定义actionbar的实现方法.分享给大家供大家参考.具体实现方法如下: android 3.0及以上已经有了actionbar的api,可以通过引入support p ...
- Android之ActionBar
本文主要包括以下内容 ActionBar的显示及隐藏,添加图标,返回主页 ActionBar添加ActionView,添加ActionProvider ActionBar实现Tab ActionBar ...
- 2013-2-19 Android之ActionBar学习(转)
2013-2-19 Android之ActionBar学习(转) Android之ActionBar学习 - Android移动开发技术文章_手机开发 - 红黑联盟 资讯 | 安全 | 论坛 | ...
- android 之 ActionBar
一 前言 Action bar就是替换3.0以前的tittle bar和menu. App Icon:可显示软件icon,也可用其他图标代替.当软件不在最高级页面时,图左侧会显示一个左箭头,用户可以 ...
- android+启动脚本,imx6q android 添加开机启动脚本
1.在xx/out/target/product/sabresd_6dq/root/init.rc中添加以下内容 ========================================== ...
- android 添加广告用proguard混淆后不显示问题解决方法
android 添加有米广告,打开proguard混淆后,广告不显示了,解决方法是keep所有引用的jar package 1 -keep public class net.youmi.android ...
最新文章
- 张钹院士:可解释、可理解是人工智能研究的主攻方向 | CCF-GAIR 2018
- 致所有IT工程师的信(网络工程师的发展方向)
- java之父求职_Java求职实战之继承和多态
- 在腾讯云控制台上对域名进行续费
- idea 错误: 找不到或无法加载主类(汇总贴)
- logback之使用demo
- jquery统计字数的小功能
- 解决文件名太长或文件夹路径太深无法删除
- caxa线切割怎样画链轮,收藏:Autocad实战教程-线切割画链轮
- SpringMVC的工作原理及组件
- 基于单片机的水温液位监测系统设计(#0513)
- 深圳神州行今日起单向收费 零月租成套餐亮点
- win7怎么查看计算机主板,win7怎么看主板型号 win7看主板型号方法【图文】
- TCP IP协议之初识
- 2018 谷歌 Google I/O 简介 总结
- PDF如何在线翻译?PDF在线翻译的方法
- 读书笔记-在工作中保持充沛的体力
- ftp服务器下载,绿色版ftp服务器下载,以及ftp上传工具使用指南
- 网页设计与网站规划 作业21 圣诞节壁纸制作
- 亚索全部语音原声mp3_常见语音模块的语音格式有哪些