展会信息港展会大全

使用ActionBarSherlock代替在android4.0中的Fragment及ActionBar
来源:互联网   发布日期:2015-09-29 10:49:30   浏览:1788次  

导读:先前有一个项目,是基于android4 0来开发,使用到了Fragment及ActionBar,没打算支持android2 1- android2 3系列版本写完之后,我将此应用发布到百度应用,一天以后,收到百度测试员反馈的信息:由于运行时出现强制关 ...

先前有一个项目,是基于android4.0来开发,使用到了Fragment及ActionBar,没打算支持android2.1- android2.3系列版本

写完之后,我将此应用发布到百度应用,一天以后,收到百度测试员反馈的信息:由于运行时出现"强制关闭错误",此应用未上架,当时一看,我猜想应该是由于 2.x版本不支持fragment及Actionbar引起

正好今天有空,重新打开此项目,启动android 2.1的模拟器,运行应用,果然一样的"强制关闭"错误,查看了下错误信息,果然是因为Fragment,ActionBar在2.x下不支持所引起,正 好前段时间了解到ActionBarSherlock可以在2.x及4.x等各版本支持Fragment,ActionBar,于是特意使用 ActionBarSherlock对项目进行了升级

升级步骤

1.在项目中add library。方法是右击属性,然后再android类中,点击add library,选择我们刚刚导入的ActionBarSherlock 库的jar

2.导入后,可能有些人会出现jar包冲突,这是因 为abs和自己项目中同时存在android-support-v4这个包,这时只要删掉自己项目中的这个jar包就ok了。

至此,我们就能在项目中使用abs 的 actionbar了

3.修改AndroidManifest.xml,添加或修改代码,如下所示

<uses-sdk

android:minSdkVersion="7"

android:targetSdkVersion="16" />

<uses-feature

android:name="android.hardware.touchscreen"

android:required="false" />

在application节增加以下内容

android:theme="@style/Theme.Sherlock"

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/Theme.Sherlock" >

设置在2.x下使用actionBar样式来显示界面,不然会显示为菜单样式

4.修改相应类

相应类的对应关系

android.app.Activity->com.actionbarsherlock.app.SherlockActivity

android.app.Fragment->android.support.v4.app.Fragment

android.app.FragmentTransaction->android.support.v4.app.FragmentTransaction

android.view.Menu->com.actionbarsherlock.view.Menu

android.view.MenuItem->com.actionbarsherlock.view.MenuItem

方法对应关系

getFragmentManager->getSupportFragmentManager

getMenuInflater->getSupportMenuInflater

getActionBar->getSupportActionBar

以上左边对应的为Activity的方法,右边对应的为SherlockActivity的方法

另外我在库中发现com.actionbarsherlock.app.SherlockFragmentActivity这个类,试了下和SherlockActivity差不多, 某些情况下可以混合使用这两个类

5.把不需要的包从import导入列表中注释掉,至此,项目已经可以在android2.x-4.x中成功运行

赞助本站

人工智能实验室

相关热词: Fragment ActionBar ActionBarSh

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港