AcitonBarSherlock介绍

  为了在2.X的平台上使用ActionBar,使用了AcitonBarSherlock。官方网址为http://actionbarsherlock.com/

  

下载它的包后,还在com.actionbarsherlock.app包下看到有下面这些类,可以看出为我们提供的不止是ActionBar。

  SherlockActivity

  SherlockDialogFragment

  SherlockExpandableListActivity

  SherlockFragment

  SherlockFragmentActivity

  SherlockListActivity

  SherlockListFragment

  SherlockPreferenceActivity

首先看看怎么使用AcitonBar ,首先导入ActionBarSherlock这个工程,然后新建一个Android Project ,在Properties的Android选项,Library中添加这个库工程。如下图。另外Project Build Target要选择3.0或者比它要大。否则会出现错误。

写个Activity 继承 SherlockActivity,通过getSupportActionBar();这有区别于高平台上的getActionBar();这个方法。

其实getSupportActionBar()方法中也是通过getActionBar()。

    public ActionBar getSupportActionBar() {
        return getSherlock().getActionBar();
    }

得到ActionBar可以设置图标,Logo,title,view ,添加菜单等。为了启用HomeButton,需要actionBar.setHomeButtonEnabled(true);在onOptionsItemSelected(MenuItem item)方法中根据item的id去 响应,HomeButton的Id是android.R.id.home

一切顺利后,开始安装执行程序。竟然崩了,看Log信息

Caused by: java.lang.IllegalStateException: 
You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative.

 

这个Activity还得使用指定的Theme啊。自己简单写了一个主题。在Manifest中为该Activity指定: android:theme="@style/MySherlockTheme"。

  <style name="MySherlockTheme" parent="Theme.Sherlock.Light"></style>

 

  

posted on 2012-08-16 18:02  Grapee  阅读(3733)  评论(0编辑  收藏  举报

导航