写于开始前,首先这篇是翻译,源自于自己关于ActionBar的一个问题求教于manoel兄,其csdn博客地址(http://blog.csdn.net/manoel?viewmode=contents)。后来他发送我一份资料,感觉不错,翻译一下。
关于那个问题:是关于如何生成如下图所示之ActionBar效果:
其实就在官网上就有答案,自己疏忽再加上资料繁多。寻了许久,经过指点。终于找到:
To enable split action bar, simply adduiOptions="splitActionBarWhenNarrow"
to your<activity>
or<application>
manifest element.(http://developer.android.com/guide/topics/ui/actionbar.html)Using split action bar 标题下。
如果你想拥有上图的那种效果,Fragment(关于Fragment的内容,见上篇)在menuItem的下面显示,在manifest.xml文件里在<activity>或者<application>里加上uiOptions="splitActionBarWhenNarrow" 即可。
注:本人在4.0版本平板上不能达到此效果,在4.0手机上可以实现。在平板上,效果类似如下:
,如果fragment增多,不会分裂出现上图效果,而使用下拉列表来显示Fragment。
下面开始正题。
简介
- ActionBar是一个显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。
- 我们可以选择可见的操作菜单可见项,不可见项会以下拉列表的形式呈现出来。(见上图相机图标右侧,点击出现下拉列 表,显示没有直接显示出来的操作菜单可见项)
-
ActionBar为Fragment之间提供标签导航
添加ActionBar
- 不需要导入ActionBar,因为在android3.0或者以上版本中,ActionBar已经默认的包含在Activity中
- 在Android3.0的默认主题“holographic”中,已经创造了ActionBar
- 当android:minSdkVersion 或者 android:targetSdkVersion 属性被设置成11或者更高时,应用会被认为是Android3.0版本(默认含有ActionBar)
去除ActionBar
-
我们可以通过把主题设置为Theme.Holo.NoActionBar为一个Activity去除掉ActionBar。 <activity android:theme="@android:style/Theme.Holo.NoActionBar">
- 我们也可以通过在代码中调用show()或者hide()方法来相应的显示或者隐藏ActionBar
添加Action Item
每一个操作菜单的菜单项都可以成为ActionBar中的一个Action Item
参考代码如下:
ActionBarDemoActivity.java:
main.xml
效果图如下:
添加活动项(Action Item)
当使用xml文件创建菜单(menu)时,可以标记这些菜单项作为想要实现的Action Item
代码如下:
ActionBarXMLActivity:
optionsmenu.xml:
效果图:
菜单项过多溢出
当创建一个ActionBar拥有太多的Action item以至于没有足够的控件来显示会在屏幕的右上角出现一个溢出菜单项,可以通过它来访问溢出部分菜单。
代码示例:
其Activity代码如上(ActionBarXMLActivity)
溢出菜单xml
其效果图如下:
使用带字的Action Item
- Action item 默认格式是如果菜单项含字和图标的话,只显示图标
- 如果想要显示字的效果,在xml里如下设置:android:showAsAction="ifRoom|withText"
- 或者在代码里调用setShowAsAction():setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM)
Action事件
- ActionBar中一个菜单项(即Action item)的触发像以前版本中的活动菜单回调方法(onOptionsItemSelected())一样。
- 当用户选择一个Fragment的菜单项时,首先会调用Activity的onOptionsItemSelected()方法,如果该方法返回false,则调用Fragment实现的onOptionsItemSelected()方法。
应用图标
- 默认情况下,应用图标在ActionBar的左侧
-
当用户点击应用bar的时候,系统会调用你的Activity里面的onOptionsItemSelected() 方法里面的Android.R.id.Home ID(你的主ID)里定义的事件。我们可以重写这个方法,添加一个条件执行该行为:让它跳转到这个应用的主Activity而不是返回的主屏幕。
- 如果选择返回应用的主activity,最好的方式是在创建的Intent中添加FLAG_ACTIVITY_CLEAR_TOP这个标签。
- 使用这个FLAG_ACTIVITY_CLEAR_TOP标签,如果应用的主Activity已经在activity栈中存在,所有在其上的activity都会被销毁,然后主activity会到栈顶,而不用创建主Activity的的新实例。
当我们想实现用户点击ActionBar 图标后返回前一个activity,可以通过在Actionbar设置setDisplayHomeAsUpEnabled(true) 来实现。
效果图:
添加活动视图
- 我们也可以添加一个视图作为一个Action Item.我们可以通过在xml元素的android:actionLayout属性制定我们希望现实布局资源的ID(例如@layout/mysearchview)
- 我们可以选择添加android:actionViewClass属性分配与完全限定的类名描述我们想要显示的视图(例如android.widget.SearchView)
代码示例:
optionsmenu.xml
HomeUpActivity.java
效果图:
ActionBar 标签
- ActionBar可以现实选项卡供用户切换浏览该Activity中不同的Fragment
- 每个标签都可以是一个图标或文本标题
代码示例:
TabsActivity.java
AFragmentTab.java
BFragmentTab.java
CFragmentTab.java
main.xml
效果图:
分享到:
相关推荐
Android ActionBar学习系列博文源代码下载。关于更多有关于Android学习的技术知识,请关注博客:http://blog.csdn.net/yegongheng
本集只有一个主角ActionBar,我们也将ActionBar作为漫漫androidUI组件学习的最后一站,一般情况下,最后一站疯兄都会刻意安排的轻松一些,让大家能够在激情中开始,在快乐中结束,也是对我们能够坚持到底的一种馈赠...
Pro Android学习系列中的action bar小例子。
仿网易新闻客户端架子搭建,Android Studio案例欢迎下载学习交流
ActionBar在Android2.x的实现,类似新版微信界面
本文实例讲述了Android ActionBar Item用法。分享给大家供大家参考,具体如下: 这里主要讲述ActionBar Item的使用方法。在手机上,按Menu键出现Menu菜单,但是在平板中可以把菜单放在ActionBar里面,放置的Item也比...
ActionBar+Fragment+ViewPager三者的使用
非常好的actionbar 值得学习
限于篇幅的原因,在上篇文章中我们只学习了ActionBar基础部分的知识,那么本篇文章我们将接着上一章的内容继续学习,探究一下ActionBar更加高级的知识。如果你还没有看过前面一篇文章的话,建议先去阅读Android ...
如果你还没有看过我的前两篇文章,建议先去阅读一下 Android ActionBar完全解析使用官方推荐的最佳导航栏(上)和 Android ActionBar完全解析使用官方推荐的最佳导航栏(下)。 相信大家都会认定微信是在手机上最火的...
Android4.0中的新功能,这个demo是学习ActionBar的特别好的样例。
NULL 博文链接:https://john-doe.iteye.com/blog/2303949
Android学习路线(二十四)ActionBar Fragment运用最佳实践demo, 博客地址:http://blog.csdn.net/sweetvvck/article/details/38645297
纯属自己学习总结,不喜勿喷
一个简单的actionbar学习,简单易懂 主要学习actionbar的作用
仿百度手机助手android端推荐界面实现上滑actionbar颜色变化及背景颜色变化继承了slibingTab与Viewpager.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究...
Android入门学习项目 Android Studio所有常用组件详细使用方法 代码实现 Java XML app开发 actionbar actionbartab activity app boxmessage eventdeal fragment gradle intentproporties javalayout layoutframe ...
《Android开发权威指南(第二版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。, 《Android开发权威指南(第二版)》全面介绍了...