ActionTitleBar轻量级 actionbar 实现
对于 android actionbar 的兼容实现,目前用得最多的就是 ActionBarSherlock,那么为什么还要重复造一个轮子呢?在实际项目开发中,ActionBarSherlock 的实现无疑是目前最强大的 actionbar 兼容实现,但是,强大并不意味着好用。
- ActionBarSherlock 的完全兼容是一种侵入式实现,对于一些老项目而言这种实现完全不能用。
- ActionBarSherlock 太大了,有时候,我们并不需要完全的 actionbar 功能,但是,我们却要为我们不需要的功能进行买单(导致打包后的安装包增大了几百K)。
- ActionBarSherlock 需要一定的学习曲线。虽然,ActionBarSherlock 对比官方 actionbar 的 api 只是加上一个 Sherlock 的前缀,但是,对于刚上手 ActionBar 的人来说,具有一定的疑惑。大大增加了学习的难度。
基于以上几点,我决定动手写一个足够轻量级的 actionbar 实现,它可能并不能像 ActionBarSherlock 那样完全实现 actionbar 的所有功能,但是,如果你只是用 actionbar 的比较简单的功能的话,或许可以考虑使用。
实现原理
从最新版本的sdk 源码中提取了ActionBar 源码,实际上这是个抽象类,定义了actionbar 相关接口。
然后,我继承这个类实现了另外一个版本的actionbar。这样的好处,就是可以能够完全重用官方的api。
实际使用中你只需要:
ActionTitleBar.getActionBar(this, titleMenu);替换调原来的 getActionBar();
然后,其他操作与官方的一样。
目前为止已经实现了:
- 基本的actionbar,title, up
- 实现了actionbar的list 导航和 标准(home up) 导航。
- 用ActionTitleMenu 类 模拟实现了actionbar 的 actionview。
截图:
评论