ActionBar基本简介
学习笔记,欢迎指导。
△本文介绍如下内容:
→ActionBar的简介。
→如何添加ActionBar。
→为ActionBar设置按钮。
→为子窗体设置回退键返回到上一级的窗体。
本文只作基本介绍,ActionBar丰富且强大的功能不在本文范围。
△概述:他提供了多种UI特性,让你的APP和其他的保持较多的一致性,为用户熟悉,核心的功能包括:
→一个专门的空间来显示你的应用的标识,并且可以指出当前处在应用的哪个页面。
→以一类可预见的方式访问重要的操作(比如检索)
→支持导航和视图切换(通过Tabs以及下拉列表)
△如何添加Action Bar
→在安卓3.0以及更新的版本,所有窗体都默认带有Action Bar。只要窗体的主题是
"@android:style/Theme.Holo"体系里的一员即可。如果你使用了自定义的主题,记得将你主题那个parent属性设为”@android:style/Theme.Holo”体系里的其中一个。
→在安卓3.0以前的版本里,需要:
(1)下载并安装v7 appcompat的jar包。
(2)使自己的窗体继承:ActionBarAvtivity。
(3)在清单文件里设置窗体主题标签:
android:theme = “@style/Theme.AppCompat”。(是Theme.AppCompat体系里的一员即可)
(4)如果你使用了自定义的主题,他必须是Theme.AppCompat体系里一员。
△为Action Bar添加按钮
→某个窗体的ActionBar的所有按钮,都有res/menu/路径下的一个文件管理,所以只要创建一个文件,并且进行相应配置即可,步骤如下:
→在res/menu/路径创建一个xml的文件(一般情况下系统默认都建了一个)。
→文件里面添加一个<menu>标签,他代表了所有按钮。
→在menu标签里,添加<item>标签,每个<item>标签代表栏目里的一个按钮。为item设置属性:id、title、icon、showAsAction。
→以上已经完成一个栏目的配置了,现在回到窗体里面将栏目和窗体绑定:
复写如下方法即可完成绑定:
public boolean onCreateOptionsMenu(Menu menu) {
//第一个参数要传入上述那个文件的名字
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
△为按钮设置响应
复写如下方法即可:
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
//做你自己想做的事
return true;
}
//如果没有一个对上
//返回超类那个ID
return super.onOptionsItemSelected(item);
}
△为子窗体设置回退按钮
→设置步骤:
(1)为子窗体指定其上一级窗体。
(2)让子窗体能显示出一个回退键。
(3)当回退按钮被按下,回到上一级的窗体。
→API16以上的版本:这类版本后面两个步骤在一个方法里面被完成。
(1)指定上一级的窗体:在清单文件里面,子窗体的那个标签,设置属性,
Android:parentActivityName=”上一级窗体的类名”(必须使用完整类名)
(2)在子窗体onCreate方法体里,调用方法:getActionBar().setDisplayHomeAsUpEnabled(true);
说明:对于API16以上的版本,这里就已完成设置,你不用去处理点击事件,系统会自动完成的(因为系统已经知道你的上一级窗体是谁了),那个回退键头的显示和点击事件响应,都有该方法完成了。
→API16以前的版本,由于没有parentActivityName属性,所要进行其他设置,而且还要自己处理点击事件响应函数,步骤如下:
(1)设置<meda-data>标签(通过他来指定上一级的窗体):
<meda-data
android:name=”android.support.PARENT_ACTIVITY”
android:value=”上一级窗体的类名”/>(同样是要完整类名)
<meda-data>
(2)显示那个回退键头:在onCreate方法体里面调用
1>getActionBar.setDisplayHomeAsUpEnabled(true)//API11以后调用他
//API11以前调用下面的
2>getSupportActionBar.setDisplayHomeAsUpEnabled(true);
根据API的版本选择一个就可以了
3>处理回退键的点击事件:
子窗体里复写方法:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home://这是回退键特有的ID
//调用他能返回上一级的窗体
NavUtils.navigateUpFromSameTask(this);
break;
}
return super.onOptionsItemSelected(item);
}
//至此,回退键的设置结束。