Support Package 和 ActionBarSherlock 使用心得

2023-10-29 04:08

本文主要是介绍Support Package 和 ActionBarSherlock 使用心得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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-actionbar,GreenDroid 以及 今天要写的 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,示例如下:


<activityandroid:label="@string/app_name"android:name=".2ndboy"android:theme="@style/Theme.Sherlock" >

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

文章出处:http://blog.2ndboy.net/support_package_and_actionbarsherlock_tips/


ActionBarSherlock官方下载:http://actionbarsherlock.com/

下载完成后可按上文方法把library导入到自己的工程中,下载的包里也有一个例子工程samples,可以比较直观地学习。

这篇关于Support Package 和 ActionBarSherlock 使用心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298142

相关文章

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

使用Python实现高效的端口扫描器

《使用Python实现高效的端口扫描器》在网络安全领域,端口扫描是一项基本而重要的技能,通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用,本文将介绍如何使... 目录1. 端口扫描的基本原理2. 使用python实现端口扫描2.1 安装必要的库2.2 编写端口扫

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux