Android Action Bar学习(一)--基本介绍及使用

本文详细介绍了Android中的Action Bar,包括其概念、组成、如何在不同Android版本中引入,以及如何添加和自定义。内容涵盖Action Bar的基本使用、图标和标题的修改、事件响应、按钮、下拉导航、Action View、Action Provider和Tabs的添加。通过实例代码展示了自定义Action Provider的步骤,帮助开发者深入理解Action Bar的使用。
摘要由CSDN通过智能技术生成

转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38488849


Action Bar 初步

       从今天开始,我们进入Android UI控件的学习阶段。首先我们来了解一下在Android开发中几乎每一个APP都会用到的一个非常重要的控件--Action Bar。Action Bar是在Android3.0之后新增的功能导航栏控件,它标识了用户当前操作界面的位置,并提供了额外的用户动作和界面导航功能。使用Action Bar的好处是可以为用户提供统一的导航操作栏,且将一些比较为重要的操作放在导航栏中方便用户操作,还有就是Action Bar可以自适应各种不同大小的屏幕,有良好的屏幕分辨率适配功能。下面是一张Android官网提供的一张Action Bar组成元素的的实例图片,并有相关的说明,如图下:


图标说明: 1、Action Bar图标;2、两个action 选项;3、overflow按钮。

基本了解了Action Bar的概念以及组成方式后,下面我们来深入地学习如何创建自己的Action Bar。

不同Android系统版本使用Action Bar的包引入问题

      由于Action Bar是Android 3.0 (API level 11)之后才引入Android API中的,所以Android3.0之前的API是没有提供Action Bar的原生类和方法。那Android SDK为了兼容不同低版本和高版本的开发,另外提供了一个第三方的jar类库--android-support-v7-appcompat.jar。它封装了Action Bar相关的类和方法,使用Android3.0以下版本的Android SDK的同学只要引入该jar包,且子类Activity继承ActionBarActivity类便可使用Action Bar了。

为界面添加ActionBar

     接下来就可以开始使用Action Bar来进行我们的开发工作了,首先要为我们的界面(Activity)引入Action Bar,第一步是在AndroidManifest.xml文件中的对应声明的Activity添加以下属性值(这里默认是基于Android4.4的API上开发的):

<!--ActionBar浅色背景 ,Android3.0版本以下使用@style/Theme.AppCompat.Light-->
 android:theme="@android:style/Theme.Holo.Light" 

添加完该属性后我们为对应的界面添加了一个浅色背景的Action Bar,对应显示的界面如图下:


若要将其换成稍微深一点的背景色,可以将属性值改成如下:

<!--ActionBar深色背景,Android3.0版本以下使用@style/Theme.AppCompat.Light.DarkActionBar-->
 android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 
对应的显示的界面如图下:


如果想要对整个APP的Activity设置相同的Action Bar样式,可以在AndroidManifest.xml中的<application/>设置全局的主题,这样可以将Theme样式应用到每一个Activity上,设置方法如同上。

ActionBar图标和标题的修改及事件响应

       Action Bar显示成功后,我们接着为Action Bar设置icon和title,设置的方法一般有两种,xml设置和代码设置,XML设置方法就是在AndroidManifest.xml文件对应声明的Activity添加如下属性值:
<!--设置ActionBar图标 -->
 android:logo="@drawable/sys_icon"
<!--设置ActionBar的名称 -->
 android:label="@string/main_title"
代码设置的方法是首先通过调用上下文的getActionBar()方法获取ActionBar实例对象,然后再调用ActionBar对象的setIcon()和setTitle()方法分别设置ActionBar的图标和Title,具体的代码如下:
/**
 * 获取ActionBar实例对象,若是Android3.0之前的版本,需
 * 调用getSupportActionBar()方法获取ActionBar实例对象
*/
 ActionBar mActionBar = getActionBar();
 //设置ActionBar的icon
 mActionBar.setIcon(R.drawable.sys_icon);
 //设置ActionBar的title
 mActionBar.setTitle(R.string.main_title);
设置完成后,运行程序,界面视图效果如下:
 
接着,我们为ActionBar的icon设置按钮点击事件,该点击事件一般是执行关闭本界面或直接跳转到指定界面的功能。废话不多说,我们用一个例子来实现一下,该例子实现的思路是有三个界面(Activity),分别名为MainActivity、ScreenFirstActivity和ScreenSecondActivity,三个Activity分别可跳转顺序的是MainActivity -> ScreenFirstActivity -> ScreenSecondActivity,该任务栈的管理方式如图下:

接着为ScreenSecondActivity的ActionBar的icon设置按钮点击事件,然后根据按钮点击事件执行相关操作。好了,开始我们的编码工作,首先ActionBar对象调用如下方法:
ActionBar mActionBar = getActionBar();
//是否启用ActionBar图标的导航功能
mActionBar.setDisplayHomeAsUpEnabled(true);
该方法主要作用是设置ActionBar图标是否具有导航点击事件功能,接下来重写Menu的事件响应方法onOptionsItemSelected(MenuItem item),然后执行如下操作:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
     int id = item.getItemId();
     switch (id) {
     //ActionBar Home键ID
     case android.R.id.home:
     //关闭当前界面
         finish();
	 break;
     default:
	 break;
       }
    return true;
}
在模拟器上运行实例程序,操作及效果图如下:


执行该操作栈的变化方式如图下:
       本操作通过调用finish()方法将本界面从当前Task移除并回退到ScreenFirstActivity,该操作其实和用户点击Back回退键的效果是一样的,但ActionBar icon事件响应不仅仅具有此功能,它还可以根据用户的设
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值