红联Linux门户
Linux帮助

android应用 ActionTitleBar

发布时间:2014-02-10 15:41:19来源:红联作者:empast
对于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。

项目主页:https://github.com/youxiachai/ActionTitleBar

来自:开源中国社区
文章评论

共有 0 条评论