2014-10-28 张云飞VIR 翻译自:https://developer.android.com/training/basics/actionbar/index.html
添加活动栏(Adding the Action Bar)
译者注:我找不到更好的词汇翻译action bar,虽然我也认为 活动栏 不是个好的翻译,但总要有个中文名字。不过为了方便识别,本文仍继续使用英文的actionbar
活动栏action bar 是非常重要的设计元素之一,你可以为你的app中的activity来实现它。它提供了数个用户界面特性,这些特性使得你的app立即让用户觉得亲和,它再不同的安卓app中提供了一致性。关键功能包括:
- 为你的app提供标识的一个专用的区域 ,并且在app中指示用户的当前位置。
- 以一种可预言的方式访问重要的活动(比如搜索)
- 支持导航和视图切换(通过标签或者下拉列表实现)
这节训练课程提供了一个关于action bar 基础的快速指南。关于actionbar 的各种特性的更多信息,请参阅 Action Bar 指南。
课程
设置action bar
学习如何添加一个基础的action bar到你的activity,不论你的app仅仅支持安卓3.0及其以上 或者也支持和安卓2.1一样的版本(通过使用安卓支持库 Android Support Library)
添加活动按钮
学习如何再action bar上 添加并且对用户活动作出响应。
样式化你的action bar
学习如何自定义你的action bar的呈现样子
覆盖action bar
学习如何如何再你的布局前面覆盖action bar,允许当你隐藏action bar时可以无缝转换。
------------------------------------------------
2014-10-28 张云飞 翻译自:https://developer.android.com/training/basics/actionbar/setting-up.html
设置action bar
在它的大多数基本形式中,action bar 为activity显示一个标题和再左侧显示一个app图标。即使是这个简单的形式,action bar 对于所有的activity来说仍然是有用的,它告知了用户他们在哪里,和为app维持一个一致的标识。
表1. 一个具有app图标和activity标题的简单action bar.
设置一个基本的action bar 需要你的app使用一个启用了action bar 的 主题。如何去请求一个这样的主题,取决于 你的app的最低支持版本。那么这节课按照你的最低支持的安卓版本来分成两个章节。
仅支持安卓3.0以上
从安卓3.0(API级别11),action bar被包含在所有使用了Theme.Holo主题(或者它的后代继承者之一)的activity内,当 targetSdkVersion
或者 minSdkVersion 属性被设置为
"11"
以及更大的时候,它将是默认的样式。
那么,添加action bar 到你的activity,很简单的设置这个属性为11或者更高。比如下面这样:
<manifest ... > <uses-sdk android:minSdkVersion="11" ... /> ... </manifest>
注意: 如果你创建了一个自定义的主题,确保它使用了 一个Theme.Holo主题来作为它的父主题。更多详细,请阅读 Styling the Action Bar.
现在Theme.Holo主题被应用到你的应用,并且所有的activity都展示了action bar。就是这样。
支持安卓2.1以上
当运行在比安卓3.0更早期的版本时(向下直到2.1版本),要添加action bar,需要在你的应用程序里包含安卓支持库(Android Support Library)。
在开始,阅读 Support Library Setup 文档,并设置 v7 appcompat 库(一旦你下载了库的包,跟随 使用资源添加库 Adding libraries with resources 的说明)。
一旦你在你的app项目中集成了安卓支持库Support Library。
1. 更新你的activity让它继承自 ActionBarActivity
. 比如:
public class MainActivity extends ActionBarActivity { ... }
2. 在你的 清单文件manifest中, 更新 <application>
元素或者 单独的 <activity>
元素 使用一个 Theme.AppCompat
主题,比如:
<activity android:theme="@style/Theme.AppCompat.Light" ... >
注意: 如果你创建了一个自定义的主题,确保它使用了 一个Theme.Holo主题来作为它的父主题。更多详细,请阅读 Styling the Action Bar.
现在你的activity包含了actionbar,当它运行在安卓2.1(API 级别7)或者更高。
记住在清单文件manifest中,适当设置你的 app支持的API级别:
<manifest ... > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="18" /> ... </manifest>
下一课:添加action按钮。NEXT: ADDING ACTION BUTTONS
----------------------------------------------------------
2014-10-29 张云飞 翻译自: https://developer.android.com/training/basics/actionbar/adding-buttons.html
添加Action按钮 (Adding Action Buttons)
action bar 允许你为 关联到app的当前上下文的那些 活动项(action items)添加按钮。大家已知的action按钮 指的是 那些 直接在action bar中显示一个图标 和/或 文字活动,那些不能填充 在actionbar的 或者 不够重要的 被隐藏在action的溢出部分
(译者注:我们能看到的图标的或者文字的就是按钮action button了,不可见就是隐藏的扩展按钮action overflow)
图一. 一个action bar包含了一个用于搜索的action按钮和action溢出部分,它展示了扩展按钮。
在XML中指定活动(Specify the Actions in XML)
所有的action按钮 和其他在扩展按钮中的可用的项(action overflow)都被定义在一个XML 菜单资源 menu resource.中。为了在action bar中添加 action,在你的项目的 res/menu/
文件夹下 创建一个XML文件。
为你想要包含在action中的每一项,添加<item>元素,比如:
res/menu/main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- Search, should appear as action button --> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" android:showAsAction="ifRoom" /> <!-- Settings, should always be in the overflow --> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:showAsAction="never" /> </menu>
未完待续...