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

简介:

Android3.0之后,GoogleUI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的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 IDonOptionsItemSelected()方法。

为了能响应点击事件,我们还需要在选项菜单的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.调用ActionBaraddTab()方法,为活动条添加多个Tab标签,并为每个Tab标签添加事件监听。

 

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

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

 

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

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

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

目录
相关文章
|
7月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
162 0
|
7月前
|
存储 安全 Linux
Android安全启动学习(四):device-mapper-verity (dm-verity)和哈希树
Android安全启动学习(四):device-mapper-verity (dm-verity)和哈希树
351 0
|
3月前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
2月前
|
Web App开发 编解码 视频直播
视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术
本文详细介绍了Android端直播技术的全貌,涵盖了从实时音视频采集、编码、传输到解码与播放的各个环节。文章还探讨了直播中音视频同步、编解码器选择、传输协议以及直播延迟优化等关键问题。希望本文能为你提供有关Andriod端直播技术的深入理解和实践指导。
56 0
|
7月前
|
监控 Unix 应用服务中间件
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
|
3月前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
4月前
|
搜索推荐 Android开发
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
本文分享了不同价位电脑配置对于编译AOSP安卓系统源代码的影响,提供了从6000元到更高价位的电脑配置实例,并比较了它们的编译时间,以供学习AOSP源代码时电脑配置选择的参考。
285 0
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
|
7月前
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
7月前
|
存储 定位技术 开发工具
Android 开发前的设计,Android之内存泄漏调试学习与总结
Android 开发前的设计,Android之内存泄漏调试学习与总结
|
7月前
|
Java Android开发 Dart
50家大厂面试万字精华总结android编程基础学习
50家大厂面试万字精华总结android编程基础学习