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)方法,为下拉列表添加多个列表项和列表项的事件监听器。
相关文章
- android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序
- Android系统启动流程 -- 学习笔记
- 代码加密 android,Android 开发怎样做代码加密或混淆「建议收藏」
- strictmode android,(十三)Android 性能优化 StrictMode
- android开发笔记之SwipeRefreshLayout
- android 安装p12证书,如何在Android中使用p12证书(客户端证书)
- Android中ActivityManager学习笔记(1)-MemoryInfo「建议收藏」
- Android studio学习笔记:adb被系统空闲进程占用了怎么办?
- 极域电子书包全新windows-android功能介绍[通俗易懂]
- Android游戏激活成功教程 入门级零基础起步学习激活成功教程!MT管理器+修改器使用方法 小白看了绝对有用
- Android修改字体_android设置字体样式
- 学习笔记 | Android开发常用的几种模式
- Android开发学习笔记之 获得Android 可使用内存
- 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )
- 【错误记录】Android 应用安全检测漏洞修复 ( StrandHogg 漏洞 | 设置 Activity 组件 android:taskAffinity=““ )
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- Android RuntimePermissions运行时权限:批量权限申请详解手机开发
- Android控制文字水平间距android:letterSpacing详解手机开发
- [android] 看博客学习Android常见的几种RuntimeException详解手机开发
- android查看绑定源码详解手机开发
- android开发中使用到的一些设计者模式详解手机开发
- Android实现PHP连接MySQL进行数据交互(android通过php连接mysql)
- Android开发旋转屏幕导致Activity重建解决方法
- Android笔记之:onConfigurationChanged详解
- Android开发笔记之:Dialog的使用详解
- Android笔记之:深入为从右向左语言定义复杂字串的详解
- Android学习笔记--使用剪切板在Activity中传值示例代码
- Android学习笔记——Menu介绍(二)
- Android学习笔记-保存数据到SQL数据库中(SavingDatainSQLDatabases)
- Android学习笔记(二)App工程文件分析