ActionBarCompat 教程-实现Action Bar
自Action Bar设计概念在Android 3.0(API 11) 中被Google引入以后,Action Bar这种设计模式迅速被各APP厂商(例如Evernote)所采纳。
但Action Bar虽好,它出现之初Android官方版本的ActionBar 只支持Android 3.0 (API 11)及以后的系统版本。而由于Android众所周知的碎片化问题,当开发者试图在minSdkVersion<10的系统上使用Action Bars时只好使用第三方开发者发布的ActionBarSherlock。
还好,在Google I/O 2013后,官方版本的兼容 Android 2.1(API 7)及其以后版本的ActionBarCompat终于发布了 (包含在Support Library v7 r18中)。原本使用ActionBarSherlock的一众应用们也开始了升级至ActionBarCompat的工作。本系列教程将为大家讲述如何使用ActionBarCompat实现Action Bar,并解答大家在初次使用ActionBarCompat时可能遇到的问题。
开发环境: System OS: Mac Mountain Lion IDE: Android Studio 0.2.10 Simulator: Genymobile
预备知识(也是必备工作)
在正式上手ActionBar之前,我们有必要理清一些概念。这对以后减少感念混淆,避免造成不必要的bug很有帮助。
Action Bar,ActionBar,ActionBarCompat是什么关系,有什么区别么?
Action Bar 是一种UI设计,在应用界面的最上端,放上图标,文字,按钮什么的,形成一个Bar实现应用内导航(Navigation),与用户交互等功能。
这是一个典型的Action Bar,1是App的Logo图标 Logo右边是应用的名字(这里图标和右边跟着的字符串都是可以在程序中更改的);2是安放在Action Bar中的一系列Action Items (这里可以看到有搜锁图标,以及购买图标) 3是Action Overflow,当你在Action Bar中放了太多的Action Items,那些受空间限制没办法单列出来的Action Items,就被统一放到Action Overflow里了。点击Action Overflow,就会出现那些隐藏的Action Items.
那什么是ActionBar呢?ActionBar是用来实现Action Bar这种UI设计的API。自Android 3.0 (API 11)起,Android SDK里就开始提供ActionBar API, 通过调用ActionBar, 可以对Action Bar里的icon(比如上面例子里的红色胶片状图标), title(例如上面例子中Google Play这几个字), Action Items(上面例子中的搜索以及购物包按钮),Action Overflow等进行设置。
那ActionBarCompat又是什么呢?刚才说了,ActionBar API是在Android 3.0及其以后版本的Android系统中才有的,也就是说经典的Android 2.1 (API 7)里,你是没有办法调用ActionBar API的,因为当年Google可没有推出Action Bar这种UI设计模式,自然也就没有ActionBar API了。于是为了方便开发者在Android 3.0以前版本的系统上开发含有Action Bar的应用,Google 在Google I/O 2013后发布了Support Library r18,这里面就包含了在Android 3.0以下版本(一直到Android 2.1)中实现Action Bar的API。这个API实现了兼容>API7的ActionBar,所以叫ActionBarCompat (Compat是兼容性Compatibility的缩写)。
因此,如果你只需要在Android 3.0以上系统中开发含有Action Bar的应用(minSdkVersion>=11),那么直接在Activity中调用ActionBar API (也就是android.app.ActionBar)就可以了。而如果需要兼容Android 2.1~3.0之间的系统,你就必须使用ActionBarCompat (在建立工程的时候,就必须将Support Library r18包[android.support.v4.jar 和android.support.v7.jar]含至编译路径,而且要使用ActionBarActivity 而不是Activity),此时调用ActionBar API的时候 ActionBar其实来自于android.support.v7.app.ActionBar。
检查Android SDK Manager中是否已经安装了Support Library revision 18
ActionBarCompat 依赖于Android Support Library, revision 18 所以在着手编程前,需要确保你的Android SDK中已经包含有最新的Support Library. 方法如下:
1. 打开Android SDK Manager
2. 确保已经安装android support library r18 (revision 18)
好了,准备工作就绪。在下一讲中,我们就要开始动手写第一个含有Action Bar,并且能运行在Android 2.1及更高系统版本的Hello World 应用了。
我的联系方式:
或
mobiletuts.me#gmail.com (replace #with @)
ActionBarCompat 教程-2. 上手ActionBar
用AndroidSDK中的Face Detector实现人脸识别
ActionBarCompat 教程-实现Action Bar的更多相关文章
- Android Action Bar简介
Android Action Bar简介 Design: Action Bar Action Bar是在屏幕顶端的一部分内容,通常在整个app进行中都保持存在. 它提供了几个关键的功能: 1.使得重要 ...
- Android 自定义title 之Action Bar
Android 自定义title 之Action Bar 2014-06-29 飞鹰飞龙... 摘自 博客园 阅 10519 转 25 转藏到我的图书馆 微信分享: Action Ba ...
- 布局文件预览:Rendering Problems Exception raised during rendering: Unable to find the layout for Action Bar.的解决
在android studio或者eclipse中打开layout文件,发现不能预览布局,提示以下错误: Rendering Problems Exception raised during rend ...
- 【Android】Android之Action Bar
Action Bar是在窗口上指示用户位置的组件,同时给用户提供导航和操作.使用Action Bar可以让你的应用在不同配置的屏幕上看起来比较一致.在开始之前,先了解一些相关的术语: Action B ...
- [转]【android studio】解决layout预览出现Rendering Problems Exception Unable to find the layout for Action Bar.
在android studio中打开layout文件,发现不能预览布局,提示以下错误: Rendering Problems Exception raised during rendering: Un ...
- Action Bar详解
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...
- show drop down menu within/from action bar
show drop down menu within/from action bar */--> pre { background-color: #2f4f4f;line-height: 1.6 ...
- Android开发之Action Bar
Action Bar代替了传统的位于设备屏幕的标题栏,主要用来显示应用程序的图标和活动的名称以及添加定制动作项等功能. 1. 显示和隐藏Action Bar 显示和隐藏Action Bar 一般有两种 ...
- Android Action Bar 详解篇 .
作者原创,转载请标明出处:http://blog.csdn.net/yuxlong2010 作为Android 3.0之后引入的新的对象,ActionBar可以说是一个方便快捷的导航神器.它可以作为活 ...
随机推荐
- 解决windows搭建jenkins执行selenium无法启动浏览器问题
因为jenkins是用windows installer 安装成windows的服务了,那么jenkins是一个后台服务,所以跑selium cases 的时候不显示浏览器 Step 1. Contr ...
- windows环境下配置tornado
1.前言 在网上看过一些在windows下配置tornado的教程,有一些写的十分复杂,让人望而生却.然后我就自己试着在windows下面配置tornado.我发现,方法非常简单,短短几 ...
- fedora 系统安装后常用设置
#表示root命令 $表示普通用户命令 给普通用户添加sudo权限 #visudo (编辑/etc/sudoers文件的命令) root all = (all) all username al ...
- 修改VS中的附加依赖项的继承值
工程用不到的库,想去都去不掉,一直链接错误... 解决方法:打开vs的“属性管理器”窗口.通过这个窗口就可以对里面的继承值进行编辑了 另,“属性管理器”这个窗口,一般在“其他窗口”选项里(至少VS20 ...
- Jenkins 默认没有Launch agent via Java Web Start,该如何配置
打开"系统管理"——"Configure Global Security" TCP port JNLP agents 配置成"随机",点击& ...
- nginx停止
- 7-Linq查询语言
本篇博客对应视频讲解 回顾 上一期我们讲解了字符编码相关的内容,大家应该去理解字符和字节之间的关系.并学习使用Encoding类进行编码之间的转换. 今天给大家讲的内容十分的重要,也是C#等语言比其他 ...
- ASP.NET Core使用Ping判断网络是否接通
static void Main(string[] args) { // 主机地址 string targetHost = "bing.com"; string data = &q ...
- Unity下的开发框架--适应web和微端游戏异步资源请求的框架
一. 内容简介: 1. 框架对Web与微端游戏特性的支持: Web和微端游戏最重要的特性是,资源是持续从服务器上即时下载下来的.而保证体验流畅的关键就是保证资源下载分散到持续的体验过程中,并保 ...
- [VB6.0-->VB.NET]关于VB6.0升级到VB.NET的微软官方文档
升级流程大体是这样的: 1.用VS2008打开Vb6.0的工程(此时针对语言层面自动升级). 注: VS更新多版了(当前最新VS2017),用最新版再打开2008升级后的工程的时候还是会有自动升级,相 ...