Support Package 和 ActionBarSherlock 使用心得

转载 2012年03月29日 16:43:15

本文转载自http://blog.2ndboy.net/support_package_and_actionbarsherlock_tips/

    Action Bar 和 ViewPager 出现以后,使得 Android 程序 cool 了很多。简单的说,ViewPager 使得实现手指横向划过屏幕来切换场景变得简单,这种切换方式在触摸屏上非常符合直觉,远胜 button 跟 tab 的体验。Action Bar 则提供了更为直接快捷的常用功能访问途径,在没有实体 menu 按键或者屏幕尺寸比较大的时候可以有更好的使用体验。

  在没有 ViewPager 之前,各路神仙使用了各种办法来尝试实现平滑的视图切换,目前 ViewPager 已经进入 Support Package,得到了 Google 的官方支持。当然,Support Package 里的好东西还有大把,比如为使用 Honeycomb(Android 3.0.x;API Level 11)之前的开发者准备的 Fragment 等等。不过 Support Package 里目前并不包含 Action Bar,于是网上也出现了一些开源的 Action Bar 实现,比如 android-actionbarGreenDroid 以及 今天要写的 ActionBarSherlock

  ActionBarSherlock 其实内置了一份 Support Package,所以并不需要在你自己的程序中再次引用 Support Package,如果已经做了引用,则需要去掉。ActionBarSherlock 需要使用 Android 3.2 SDK(API Level 13)进行编译,你的程序也需要至少 API Level 13 进行编译,但是编译出来的程序可以跑在 2.3 的系统上,并在低版本的系统上实现 Action Bar 和 ViewPager。

  ActionBarSherlock 目前的最新版本是 v3.4.2,假设我们下载后把它释放在 E:\2ndboy\Android\ActionBarSherlock。ActionBarSherlock 不提供 jar 包下载,因为它内含的资源无法以 jar 的形式使用,所以要单独编译成 library 后被需要使用的程序引用。

  释放后打开 Eclipse,菜单 File,New,Project…。选中 Android 下的 Android Project,Next。接着在 New Android Project 对话框里选中 Create project from existing source。Project Name 填 ActionBarSherlock。Location 使用 E:\2ndboy\Android\ActionBarSherlock\library,Next。在 Select Build Target 对话框中选中 Android 3.2(API Level 13),Finish。

  如果遇到找不到 AndroidManifest.xml 的错误,可以尝试把 E:\2ndboy\Android\ActionBarSherlock 改名,出错原因是 Eclipse 其实是尝试在 ActionBarSherlock 下创建 project(因为我们指定的 Project Name 也叫 ActionBarSherlock),而不是 ActionBarSherlock\library。

  如果看到很多类似“Description Resource Path Location Type
The method add(CharSequence) of type Menu must override a superclass method Menu.java /ActionBarSherlock/src/android/support/v4/view line 5 Java Problem”的错误,可能需要在 Project Properties 里面,把 Java Compiler 的 Compiler compliance level 改成 1.6。

  以上就准备好了 ActionBarSherlock 库。接下来新建一个 Android Project,Select Build Target 时选 Android 3.2 或者更新的版本,Application Info 里面,Minimum SDK 指定一个你需要的最低版本,比如 4(Android 1.6)。

  建好新工程以后我们把 ActionBarSherlock 引入这个 project 里,让这个 app 可以支持 Support Package 和 Action Bar。Project Properties,Android。在 Library 里点 Add…,选中 ActionBarSherlock(这时 ActionBarsherlock 需要在 workspace 里面,并处于打开状态),Ok。

  加好以后如果发现 R class 没有生成(提示 R cannot be resolved to a variable),同时注意到新工程里引用的 Android SDK 低于 Android 3.2 的话,要进入 Project Properties,Android,在 Project Build Target 里选择 Android 3.2 或者更高版本,修改完成后最好 Close Project 后重新打开。

  以上就是编译 ActionBarSherlock 并集成到自己 project 的全过程,我这个 Android 菜鸟摸索了半天才搞定,不容易啊:D 下面简单介绍下 code 部分。

  使用 Action Bar 的 Activity 需要继承自 FragmentActivity,并且在 AndroidManifast.xml 里要指定 Activity 的 theme,示例如下:

  1. <activity
  2.      android:label="@string/app_name"
  3.      android:name=".2ndboy"
  4.      android:theme="@style/Theme.Sherlock" >

  获取 Action Bar 实例要用 getSupportActionBar(),而不是 getActionBar()。由于 ActionBarSherlock 已经自带了一份 Support Package,所以我们不需要再去引入就可以直接使用 ViewPager 和 Fragment 了。Action Bar 上可以加 tab,跟 ViewPager 的 swipe 实现联动,此外 Android-ViewPagerIndicator 也是一个可参考的不错的开源库,用来实现 ViewPager 的各种指示器效果。

ActionBarSherlock(一)在Eclipse中如何引入ActionBarSherlock和它的例子?

ActionBarSherlock,是一个开源的Actionbar项目(http://actionbarsherlock.com/download.html)。为什么我们要用它呢?谷歌已经不强制要求厂...
  • sunylat
  • sunylat
  • 2014年12月01日 12:06
  • 5641

ActionBarSherlock导入Android Studio gradl额failed

在尝试使用SlidingMenu两天后,我还处于导入SlidingMenu和导入ActionBarSherlock两个Module上面,归结一个原因还是水平太菜。 水平太差那就没有办法,放弃使用...
  • jxsczqh
  • jxsczqh
  • 2015年12月08日 17:42
  • 869

ActionBar(1) 告别ActionBarSherlock,使用android.support.v7.app.ActionBar来代替

告别ActionBarSherlock,使用android.support.v7.app.ActionBar来代替     1. import -> Existing Android Code I...
  • xcltapestry
  • xcltapestry
  • 2013年10月29日 21:29
  • 8880

解决slidingmenu+actionbarsherlock结合使用时遇到的问题

转自:http://www.apkbus.com/android-166270-1-1.html 解决slidingmenu+actionbarsherlock结合使用时遇到的问题 高端大...
  • superliuxing
  • superliuxing
  • 2014年08月03日 01:10
  • 1297

appcompat_v7 与 actionbarsherlock 冲突解决/移除项目中的appcompat_v7

当项目使用
  • newcool123
  • newcool123
  • 2014年11月23日 05:09
  • 1354

MATLAB Support Package for Arduino Hardware 安装当中的一些问题

MATLAB Support Package for Arduino Hardware,
  • andersonanya
  • andersonanya
  • 2016年04月01日 10:48
  • 5588

【matlab】安装 webcam 支持

打开 matlab 命令行,输入 webcam,如果提示:尚未安装 MATLAB Support Package for USB Webcams。打开支持包安装程序即可安装 Webcam Suppor...
  • lanchunhui
  • lanchunhui
  • 2017年03月22日 18:32
  • 2123

matlab2015a支持的usb webcams support package

由于MATLAB2015a安装的是免费版,在用videoinput时便出现问题如下:   view sourceprint? 01.imaqhwinfo 0...
  • qq_18343569
  • qq_18343569
  • 2015年09月16日 16:35
  • 1820

support package

问题: 创建android工程时Install Dependencies(安装依赖)提示 解决: 分析: android版本更新到4.0以上,ADT更新到对应的版本后,就会出现这样的情况。提示...
  • happinessmoon
  • happinessmoon
  • 2013年03月13日 16:08
  • 367

Android整合SlidingMenu和Actionbarsherlock解决Actionbar的冲突

最近也是因为自己需要做一个自己的博客APP,所以玩起了android,本身自己是做服务端的,所以只是使用android进行数据展示,逻辑还是简单一些,我学习了那些基本的语法和布局等,但是做UI还是很费...
  • gaoxuaiguoyi
  • gaoxuaiguoyi
  • 2015年11月19日 21:23
  • 706
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Support Package 和 ActionBarSherlock 使用心得
举报原因:
原因补充:

(最多只允许输入30个字)