新浪微博Android客户端实战 – 使用ActionBarSherlock与MenuDrawer

很久没有为 Android for WordPress 项目贡献代码了,最近他们把代码放在 github 上,pull requests 方便了许多。之前我都是在trac上给他们提交patch, 新建一个ticket 贴上 svn diff 的结果,苦不堪言,最后只好放弃。在google play 上更新了客户端,界面比以前有很大的进步,可圈可点。因此,我决定参考wordpress, 使用上 ActionBarSherlock 与 MenuDrawer, 替换 android-action 组件。为什么一开始使用 android-action?因为 actionbar 的颜色我喜欢,而且组件使用简单。学习 ActionBarSherlock 是有些成本的,编译 sample 示例,边看效果边看代码。

主要修改点:

1. 将 android.app.Activity 替换为 SherlockActivity

// file: BaseActivity.java
import com.actionbarsherlock.app.SherlockActivity;

public class BaseActivity extends SherlockActivity {
// activity implementation
}

2. getMenuInflater 修改为 getSupportMenuInflater,注意,要把android 自带导入的Menu包删掉,导入ActionBarSherlock的包,不然会提示无法 Override onCreateOptionsMenu。

3. 把项目中 libs/android-support-v4.jar 干掉,这个会与abs的冲突。eclipse 报错:

Found 2 versions of android-support-v4.jar in the dependency list, but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Jar mismatch! Fix your dependencies

4. abs 进度条尺寸很大,需要改小一点的,参考: Android: Changing the Default Indeterminate Progress Size in ActionBarSherlock

ActionBarSherlock 修改记录: https://github.com/lytsing/weibo/commit/3d6f203a390460b4cdd1c8f8543c523ad55f0ccb

使用 MenuDrawer

MenuDrawer 跟 abs 可以很好的结合使用,照着 android-menudrawer-abs-sample 写。修改记录:https://github.com/lytsing/weibo/commit/15e61dc2fbb556b68db21d2fe8a4d0e2aadc4938 图标,背景颜色,后期再需要调整。

If you enjoyed this post, make sure you subscribe to my RSS feed!

Leave a Reply

Your email address will not be published. Required fields are marked *