ActionBarSherlock — 无缝集成ActionBar

鉴客 发布于 2012/01/08 14:37
阅读 16K+
收藏 2

如果你想在3.0+系统上使用系统的ActionBar而在3.0以前的系统上使用自定义的ActionBar,那么ActionBarSherlock就可以帮助你了.

ActionBarSherlock 是Android compatibility library 的一个扩展, 不知道什么原因 Android 兼容开发包没有包含ActionBar. 所以就有了ActionBarSherlock . 其使用方式和 兼容开发包类似.

下载地址: https://github.com/JakeWharton/ActionBarSherlock/zipball/3.4.2

有两种方式把ActionBarSherlock类库引入到你的项目中,:

  1. 使用Eclipse和ADT插件.
解压下载的文件, 用里面的library目录中的代码创建一个Android项目.然后在项属性中的Android选项里面设置该项目为library项目. 这样就可以在其他Android项目中使用了.
  1. 使用Maven.
如果你使用Maven来打包的话, 只需要添加一个依赖项即可:
<dependency>
  <groupId>com.actionbarsherlock</groupId>
  <artifactId>library</artifactId>
  <version>3.4.2</version>
  <type>apklib</type>
</dependency>
注意:需要在你项目pom.xml的资源库中添加 r.jakewharton.com/maven/release/.
另外 如果项目已经使用了Android兼容开发包,需要把他们移除, 因为ActionBarSherlock 已经包含了这些代码.
为了在3.0以前系统上使用ActionBar需要导入下面的类:
android.support.v4.app.ActionBar
android.support.v4.view.Menu
android.support.v4.view.MenuItem

这些类的名称和3.0系统中的一样.

使用ActionBar API需要你的Activity继承至FragmentActivity, 通过调用FragmentActivity.getSupportActionBar()函数来处理ActionBar事件, 而不能调用3.0系统中的getActionBar()函数.
ActionBar类的API和3.0系统中的一样, 详情参考这里的API文档.
在3.0+系统上使用原生的ActionBar实现, 如下图:
使用原生ActionBar

使用原生ActionBar

在3.0以前系统上使用自定义实现, 如下图:
使用自定义ActionBar

使用自定义ActionBar

加载中
0
fneg
fneg
悲剧啊!无法导入工程,提示The type ActionMenuItem must implement the inherited abstract method MenuItem.setOnActionExpandListener(MenuItem$OnActionExpandListener)
fneg
fneg
搞定了,原来真的要用3.2,用4.0居然都不能顺利编译
0
d
dutywd

你使用最新SDK,报错的地方最简单的实现就是重写,里面什么不做就行了呀

 

0
罗布V
罗布V

为什么我找不到getSupportActionBar

 

返回顶部
顶部