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>