ActionBarSherlock,SlidingMenu

转自:http://www.chenwg.com/android/actionbarsherlock%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.html

Android3.0开始就提供了ActionBar,这让Android的用户体验强了好多,但是这个ActionBar在Android3.0以下是不支持的,谷歌也没推出什么解决方案,不过呢,没有什么是实现不了的,有github上有牛人放出了开源的ActionBarSherlock,可以在Android2.x上实现ActionBar,如果你在Android3.0的手机上使用,它会调用原生的ActionBar。

ActionBarSherlock在github上的地址是:https://github.com/JakeWharton/ActionBarSherlock,它的官网是:http://actionbarsherlock.com/,下载即可,现在最新版本是4.2.0.

下载好,就解压出来,有三个文件夹,其实library就是Android公共库的使用,也就是将一些共同的东西抽取出来,包括java文件,资源文件等。

我的开发工具是eclipse,并安装了Android-maven,然后将这个library项目以maven项目导入即可。

接着新建一个Android工程,然后右键选择properties,再选择Android,接着添加library进来,如下:

actionbar1

1.修改项目的AndroidManifest.xml文件,将Android的Theme,也就主题改为如下:

android:theme=”@style/Theme.Sherlock.Light”  ,也就是使用ActionBarSherlock里的主题;

2.修改MainActivity.java文件,默认生成的MainActivity类是继承Activity的,现在将Activity修改成SherlockActivity;

3.修改menu文件夹下的main.xml文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
< menu  xmlns:android = "http://schemas.android.com/apk/res/android"  >
 
     < item
         android:id = "@+id/add"
         android:icon = "@android:drawable/ic_menu_add"
         android:showAsAction = "ifRoom"
         android:title = "@string/add"
         android:titleCondensed = "@string/add" >
     </ item >
     < item
         android:id = "@+id/delete"
         android:icon = "@android:drawable/ic_menu_delete"
         android:showAsAction = "ifRoom"
         android:title = "@string/delete"
         android:titleCondensed = "@string/delete" >
     </ item >
 
</ menu >

4.要使ActionBar显示menu按钮,得重写MainActivity中的onCreateOptionsMenu方法,还要导入ActionBarSherlock中的Menu、MenuItem包,如下:

1
2
3
4
5
6
7
import  com.actionbarsherlock.view.Menu;
import  com.actionbarsherlock.view.MenuItem;
@Override
     public  boolean  onCreateOptionsMenu(Menu menu) {
         getSupportMenuInflater().inflate(R.menu.main, menu);
         return  true ;
     }

运行下模拟器,如下:

actionbar

 
 
分类:  Android开发
http://www.cnblogs.com/hxxy2003/archive/2013/04/09/3009419.html
 
#########################

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=262755&extra=page%3D1&page=1

1. 在github上有一个效果不错的开源库,SlidingMenu 最新的代码下载下来后,会报错:

No resource found that matches the given name: attr 'homeAsUpIndicator'.

No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'.


原因是它本身又引用了另外一个开源库 ActionBarSherlock ,所以首先要做的就是去下载 ActionBarSherlock,引用其中的library。

-------------------------------------------------------

增加引用方法:修改SlidingMenu\example\project.properties

Java代码   收藏代码
  1. # Project target.  
  2. target=android-17  
  3. android.library=false  
  4. android.library.reference.1=../library  
  5. android.library.reference.2=../ABS  
  6. #增加这一句  
  7. android.library.reference.3=../../ActionBarSherlock/actionbarsherlock  
  8. proguard.config=proguard-project.txt  

 

2. 这样,SlidingMenu 的示例代码就引用了两个library,这时候还不能用,项目报错:

Jar mismatch! Fix your dependencies

解决此问题的方法见 http://blog.csdn.net/java_crab/article/details/8477416 ,其实就是需要两个library使用的support包是一样的。

3. 解决了上面的问题之后,还会出现下面的问题:
可能报找不到getSupportActionBar等ActionBarSherLock的方法。原因是使用ActionBarSherLock的Activity需继承于SherlockActivity,修改SlidingMenu library中的SlidingFragmentActivity,让它继承于SherlockFragmentActivity,重新编译library导入。

需要修改文件SlidingMenu\library\project.properties,增加:
android.library.reference.1=../../ActionBarSherlock/actionbarsherlock


经过以上三个步骤之后,就可以成功的编译通过SlidingMenu提供的示例代码!

Github 链接
SlidingMenu https://github.com/jfeinstein10/SlidingMenu
ActionBarSherlock https://github.com/JakeWharton/ActionBarSherlock

 

http://www.bubuko.com/infodetail-423289.html

转载于:https://www.cnblogs.com/pengmn/p/4816544.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值