ActionBarSherlock使用总结


最近想在项目中使用ActionBarSherlock这个lib,众所周知actionbar是android3.0以后出的一个新特性,是android上面的一大亮点,使用者很多,但是为了适配android3.0以前的版本的手机,我们使用了这个包,这个包在内部做了判断,如果手机是3.0以上的android系统会自动使用系统自带的方法,如果是3.0以下的则会使用自己的方法。

(之前有写成4.0 笔误 致歉)

现在android support v7里面的兼容包已经支持了ActionBar在2.X上面使用 毕竟是亲生的还是推荐

使用ActionBarSherlock的activity必须要extend SherlockActivity,这是activity的一个子类


ActionBarSherlock默认主题

ActionBarSherlock默认有三种主题

  1. R.style.Theme_Sherlock,
  2. R.style.Theme_Sherlock_Light
  3. R.style.Theme_Sherlock_Light_DarkActionBar
    你必须在setContentView前setTheme 否则会报错

配置背景

ActionBarSherlock中可以使用下面代码设置背景
getSupportActionBar().setBackgroundDrawable (getResources().getDrawable(R.drawable.ab_bg_black));
这样可以给actionbar设置一个图片背景,但很多时候我们需要一个颜色作为背景,可以使用下面代码
<resources> <drawable name="ab_bg_black">#aa000000</drawable> </resources>

ActionMode

ActionMode包括ActionMode的事件回调函数ActionMode.Callback
在ActionMode.Callback中onCreateActionMode创建ActionMode,
onActionItemClicked处理ActionMode的点击事件

自定义CustomNavigation

可以自定义一个View然后使用下面方式使用
getSupportActionBar().setCustomView(customNav); getSupportActionBar().setDisplayShowCustomEnabled(true);

SearchView

在onCreateOptionsMenu中使用一下代码
SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("Search for countries…");
menu.add("Search") .setIcon(isLight ? R.drawable.ic_search_inverse : R.drawable.abs__ic_search) .setActionView(searchView) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

Spilit

在清单文件中配置android:uiOptions=”splitActionBarWhenNarrow”可以使菜单显示在底部


注意 如果你的项目引用了lib后报错 可以检查下是不是support-v4这个包冲突了 我的是删除了自己项目中的这个包后可以了

http://actionbarsherlock.com/