Android Support V7 包中 ActionBar的使用
以下示例为API<11,因为API>=11时本来就有ActionBar可以使用,所以不猜讨论范围之内
今天Google发布了最新的API 18,包括众多新的性能,正好最近在研究ActionBarSherlock,看到最新的Support V7包也开始支持ActionBar了,就研究了一下使用方法,我把自己今天研究到的一个使用方法记录如下,希望可以抛砖引玉吧.
1. 导入Support V7的包.更新SDK 18以后,会发现在 \android-sdk\extras\android\support\v7目录下有三个子文件夹,分别是:appcompat\gridlayout\mediarouter,工作中比较常用的是appcompat,所以今天也只看了这个目录下的android-support-v7-appcompat.jar.把这个文件导入到工程中.
2.在manifest文件中,为你使用了ActionBar的actitity添加theme属性,这个theme必须是 @style/Theme.AppCompat ,@style/Theme.AppCompat.Light.,@style/Theme.AppCompat.Light.DarkActionBar,三种中的一种,我偷懒了,直接在application节点中加了theme.
3.在res/menu目录下,写一个xml文件。官方推荐每一个item项都要有icon和title图标,因为系统默认显示的是图标,而且当屏幕空间不够的时候,未显示的菜单就会隐藏到列表中,而列表中只能显示title字段的值。
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_search"
android:icon="@drawable/left"
android:title="search"/>
<item
android:id="@+id/action_compose"
android:icon="@drawable/right"
android:title="compose"/>
</menu>
4.实现Activity,让它继承ActionBarActivity.在onCreateOptionsMenu()方法中,获取到每一个MenuItem,之后为每一个MenuItem调用MenuItemCompat.setShowAsAction(MenuItem item, int actionEnum)方法,就可以将菜单项变为ActionBar中的子项了.
actionEnum的值有以下几种:
MenuItemCompat.SHOW_AS_ACTION_ALWAYS (始终显示)
MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW (隐藏列表中显示)
MenuItemCompat.SHOW_AS_ACTION_IF_ROOM (屏幕有空间就显示,没空间就隐藏)
MenuItemCompat.SHOW_AS_ACTION_NEVER (永不显示)
MenuItemCompat.SHOW_AS_ACTION_WITH_TEXT (既显示图标又显示文字)
最后 在方法中要 return true
@Override
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.main, menu); MenuItem menuItem = menu.findItem(R.id.action_search); MenuItem findItem = menu.findItem(R.id.action_compose); MenuItemCompat.setShowAsAction(menuItem, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
MenuItemCompat.setShowAsAction(findItem, MenuItemCompat.SHOW_AS_ACTION_WITH_TEXT); return true;
}
这样就大功告成了.
项目文件下载地址: http://download.csdn.net/detail/hkg1pek/5816295
Android Support V7 包中 ActionBar的使用的更多相关文章
- 转 如何使用V7包中ActionBar(Eclipse版)
http://blog.csdn.net/appte/article/details/11712591 以前3.0以前的版本要使用ActionBar,必须使用国外大牛写的ActionBarSherlo ...
- 如何使用V7包中ActionBar(Eclipse版)
转自:http://blog.csdn.net/appte/article/details/11712591 以前3.0以前的版本要使用ActionBar,必须使用国外大牛写的ActionBarShe ...
- android.support.v4包中的LruCache源码简读
package android.util; import java.util.LinkedHashMap; import java.util.Map; /** * A cache that holds ...
- android 使用android.support.v7 添加ActionBar
当需要在 android 7或更高的版本使用 ActionBar,则可以通过继承ActionBarActivity来实现, 网上有一个开源项目来兼容老版本显示ActionBar的效果:ActionBa ...
- [转]Android 导入v7包常见错误,以及项目引用v7包错误解决
android下v4 v7 v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现 ...
- Android 导入v7包常见错误,以及项目引用v7包错误解决
android下v4 v7 v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现 ...
- 如何使用android-support-V7包中ActionBar(Eclipse版)
$*********************************************************************************************$ 博主推荐 ...
- android.support.v7.app.AppCompatActivity
1.Android Studio (api 23) 新建项目的时候 Activity public class MainActivity extends AppCompatActivity 2.系统默 ...
- 在项目中引用android.support.v7
在Android开发中,新建的项目可能因为缺少对sopport工程的引用而报错,可以这样解决. 1.项目右键 --> import --> Android --> Existing ...
随机推荐
- onItemClickListener监听的整个item的点击。如何只监听那个framelayout的点击 onItemClickListener监听的整个item的点击。如何只监听那个framelayout的点击
已经知道了.复写getView()的时候,在内部Viewholder.length.setOnClickListener(匿名内部类) 然后新建一个接口方进去 ,然后外面的listView设置&l ...
- 【HDOJ】1274 展开字符串
栈的应用,需要注意括号前可能没有数字的情况. #include <cstdio> #include <cstring> #include <cstdlib> #in ...
- COJN 0484 800502电池的寿命
800502电池的寿命 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电. ...
- typedef 用法及 指针函数 和 函数指针
typedef 本质上是定义了一种新的类型, 该新类型可以原有类型的别名或是原有类型的组合. 而#define 只是字符串的替换. 如定义: typedef char* CHARP; 则 CHARP ...
- dos 下 注册win 组件 ocx 后缀的
C:\WINDOWS\system32>regsvr32 NTGraph.ocx
- 2013.11.7-21:15_My first Java program
- 关于Cookie和Session【转载】
当你第一次访问一个网站的时候,网站服务器会在响应头内加上Set-Cookie:PHPSESSID=nj1tvkclp3jh83olcn3191sjq3(php服务器),或Set-Cookie JSES ...
- java笔记9之switch
switch语句的注意事项: A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的 B:default可以省略吗? 可以省 ...
- jquery and js 判断一个元素是否存在
一.javascript中判断一个元素是否存在 if(document.getElementById('example')){ // do sth } 二.jquery中判断一个元素是否存在 < ...
- [置顶] COcos2d-X 中文API
本文来自http://blog.csdn.net/runaying ,引用必须注明出处! COcos2d-X 中文API 温馨提醒:使用二维码扫描软件,就可以在手机上访问我的博客啦!另外大家可以访问另 ...