Android学习笔记(35):Android活动条

在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,用于取代3.0之前的标题栏,并提供更为丰富的导航效果。

ActionBar可以显示应用图标和Activity标题,还有Action Item活动项。

ActionBar的主要用途:

1.可以设置该Activity的图标和标题。

2.可以配合Fragment用标签或是下拉列表实现不同页面的导航。

3.可以添加Action View为用户提供快捷的访问。

 

启用ActionBar:

(1).高于Android3.0的版本都是默认启用ActionBar的。我们会发现新建的Activity默认继承自ActionBarActivity。如果希望关闭ActionBar,我们可以把主题设置为Xxx.NoActionBar。像下面这样:

<activity android:theme="@android:style/Theme.Holo.NoActionBar">

 

(2).我们也可以通过在代码中调用show()或者hide()方法来相应的显示或者隐藏ActionBar

 

.在我们使用actionBar.hide()方法时,系统默认会将ActionBar占用的空间分配给界面,此时显示的界面将会重新绘制。同样调用actionBar.show();时也会重新绘制界面。如果我们一个程序需要频繁的显示或者隐藏ActionBar的话,这样就不会有良好的效果。Google提供给一个属性可以让ActionBar浮在界面上,当然你可以让ActionBar的背景为透明,这样会有良好的体验效果。

 

(3).将选项菜单显示在活动条上

这是为了解决许多手机已经不再提供Menu按钮的问题。

MenuItem提供了setShowAsAction(int actionEnum)方法将菜单项显示在ActionBar上作为Action Item。

actionEnum可选的参数值如下:

SHOW_AS_ACTION_ALWAYS:总是将该MenuItem显示在ActionBar上。

SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW:将该Action View折叠成普通菜单项

SHOW_AS_ACTION_IF_ROOM:但ActionBar位置足够时显示该MenuItem。

SHOW_AS_ACTION_NEVER:不显示在ActionBar上

SHOW_AS_ACTION_WITH_TEXT:只显示该MenuItem的文本在ActionBar上。

 

当然我们也可以修改菜单项的XML文件来将其显示在ActionBar上,只需要修改<item.../>的android:showAsAction属性。

 

当手机顶部的ActionBar空间不够时,Android对不同的设备有不同的处理方式,有MENU按键的手机会将不能显示的菜单项显示在MENU按键激发的菜单上,没有MENU按键的手机则会在ActionBar的最后显示一个折叠图标,单击该图标会出现剩余的菜单项。

 

(4).将活动条上的应用图标转变成可点击的图标。

可以调用如下的这些方法:

setDisplayHomeAsUpEnabled(boolean showHomeAsUp):设置应用图标是否可以点击,并在图标上添加一个向左的箭头,一般是用于回退到上级Activity。

setDisplayOptions(int options):控制ActionBar的显示选项。

setDisplayShowHomeEnable(boolean showHome):设置是否显示应用程序图标。

setHomeButtonEnabled(boolean enabled):设置是否将应用程序图标转变成可单击的按钮。

 

单击这个图标时,系统会调用Activity带有android.R.id.home ID的onOptionsItemSelected()方法。

为了能响应点击事件,我们还需要在选项菜单的onOptionsItemSelected方法中增加相应的处理。

 

(5).在活动条上显示Action View

我们可以通过如下两种方式在活动条上添加普通的组件。

1.定义Action Item时使用android:actionViewClass属性指定Action View的实现类。

2定义Action Item时使用android:actionLayout属性指定Action View的实现类。

 

(6).使用ActionBar实现Tab导航

在ActionBar上显示多个Tab标签,单击Tab标签会导航到指定的Tab页面。

实现Tab导航的步骤如下:

1.为ActionBar设置模式为Tab导航setNavigationMode(ActionBar.NAVIGATION_MODE_TABS),这个方法还可以设置参数ActionBar.NAVIGATION_MODE_LIST,那是用于实现下拉列表的。

2.调用ActionBar的addTab()方法,为活动条添加多个Tab标签,并为每个Tab标签添加事件监听。

 

为了更好地展现Tab导航效果,我们常常将ActionBar和Fragment结合使用。

Fragment可以在一个Activity中创建多个页面,具体用法后面再介绍。

 

(7).除了Tab导航外,我们还可以用ActionBar实现下拉式导航。具体步骤如下:

1.ActionBar设模式为下拉列表setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)。

2.调用setListNavigationCallbacks(SpinnerAdapter adapter,ActionBar.OnNavigationListener callback)方法,为下拉列表添加多个列表项和列表项的事件监听器。

时间: 2024-11-02 10:06:01

Android学习笔记(35):Android活动条的相关文章

Android学习笔记(33):Android对话框

Android为我们提供了多种对话框,其中AlertDialog功能最强大,最常用.此外,还有ProgressDialog.DatePickerDialog和TimePickerDialog.   AlertDialog.Builder类可以帮助我们方便的创建对话框. 具体步骤如下: 1.创建一个AlertDialog.Builder对象. 2.调用setTitle().setCustomTitle().setIcon()等方法设置对话框标题.图标.内容等. 3.调用AlertDialog.Bu

Android学习笔记(36):Android的两种事件处理方式

Android提供了两种事件处理的方式:基于回调的事件处理 和 基于监听的事件处理.   我们来说的容易理解一点: (1)基于回调的事件处理就是继承GUI组件,并重写该组件的事件处理方法.除了一些特定的情况,大部分情况使用基于回调的事件处理方式并不是最好的选择. (2)基于监听的事件处理就是在监听器中定义事件的处理方式,再为组件绑定监听器.这种方式无疑是更能够体现面向对象思想的.   基于回调的事件处理:   View类包含如下的方法可以用于重写: boolean onKeyDown(int k

Android学习笔记(3):Android项目结构分析

为了更好的了解Android的工程结构,我们在命令行窗口创建一个Android工程,在命令行窗口输入如下的命令: android create project -n HelloWorld -t android-19 -p E:\AndroidWS\HelloWorld -k pres.zxc.helloworld -a  MainActivity (-n指定创建的项目的名称,-t指定Android平台,-p指定工程的保存路径,-k指定项目的报名,-a指定Activity的名称) 然后来到我们的工

Android学习笔记(6):Android应用的基本组件

1. Activity组件:负责与用户交互的组件 2. Service组件:为其他组件提供后台服务或监控其他组件的运行状态 3. BroadcastReceiver组件:广播消息接收器,监听的事件源是其他组件 4. ContentProvider组件:跨应用的数据交换 5. Intent和IntentFilter:应用内不同组件的通信   Activity组件:负责与用户交互的组件 (1). setContentView(View):在Activity中,可以通过setContentView(V

Android学习笔记45之gson解析json_Android

JSON即JavaScript Object Natation, 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, key-value对之间使用逗号分隔. 如:{"name":"coolxing

API Demos 2.3 学习笔记 (3)-- Android应用程序架构

更多精彩内容,请点击阅读:<API Demos 2.3 学习笔记> Android应用程序以可以分为下三种类型:1.前端Activity(Foreground Activities):通俗一点讲Activity可以理解为一个界面容器,里面装着各种各样的UI组件.例如,上面例子中"Hello World" 显示界面.2.后台服务(Background Services):系统服务(System Service).系统Broadcast(广播信息)与Receiver(广播信息)

Android学习笔记(二)App工程文件分析_Android

App工程文件分析 关于如何创建一个最简单的Android App请参照链接: < Android学习笔记(一)环境安装及第一个hello world > http://www.jb51.net/article/52593.htm 创建完的工程文件如下图所示,本文对一些主要的文件进行分析. src文件分析 App源文件如图: 打开源文件 MainActivity.java 可看到如下代码: 源码主要功能如下: App源文件目录 package com.example.firstapp; 导入A

Android学习笔记之应用单元测试实例分析_Android

本文实例讲述了Android学习笔记之应用单元测试.分享给大家供大家参考,具体如下: 第一步:在AndroidManifest.xml中加入如下两段代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pccw" android:versionCode="1" android:versionName="1.0&qu

Android学习笔记之应用单元测试实例分析

本文实例讲述了Android学习笔记之应用单元测试.分享给大家供大家参考,具体如下: 第一步:在AndroidManifest.xml中加入如下两段代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pccw" android:versionCode="1" android:versionName="1.0&qu