没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Android
实现通用的
ActivityGroup (效果类似
Android
微博客户端主界面),强烈建议
不要再使用
TabActivity
ActivityGroup 在实际的开发中是十分常见的,在我使用过的
Android 应用中,十个应用里面有九个应用的主界面都是使用
ActivityGroup 的。说起 ActivityGroup,在国内好像直接使
用它开发的并不多,基本都是使用 TabActivity,它是
ActivityGroup 唯一的一个子类。Android 端新浪微博的主界面
就是用 TabActivity 来实现的,还有其它的一些应用也几乎都用
TabActivity 来实现。在我眼里,TabActivity 是 Google 提供
的一个非常失败的 API(至少我现在这么认为,下文我会说它失败
在哪里),但中国几乎所有的应用都使用 TabActivity,我不禁
在思考这是巧合还是复制粘贴的产物。使用 ActivityGroup(或
者说 TabActivity)开发出来的主界面效果图如下(涉及版权问
题,我这里就不粘微博的主界面了,我粘我自己的,虽然比较难看,
有兴趣可以去参考新浪微博,微信等 Android 客户端):
可以说 ActivityGroup 是 Google 提供的一个非常优秀的 API,
但它需要做稍微复杂的重写才能用起来比较方便,本文拟将实现这
个稍微复杂的重写。TabActivity 作为 ActivityGroup 唯一的
子类却让人大失所望。
首先来说 ActivityGroup 的优秀之处以及它的必要性,它为开
发者提供了一种可能,这种可能不将 Activity 作为屏幕的顶级元
素(Context)呈现,而是嵌入到 ActivityGroup 当中。这是一
种极大的飞跃,它将场景(Context)细分化了,
ActivityGroup 是一个主场景,而用户可以通过导航按钮来切换
想要的子场景。如使用微博功能,它是一个相当宏大的场景,具有
看最新的广播信息、自己发微博、修改资料等子场景,用户可以通
过按钮来切换到想要的子场景,而这个子场景仍活动于主场景之中。
让一个主场景能拥有多个逻辑处理模块,主场景不再负责子场景逻
辑,主场景只负责切换场景的逻辑,即每一个 Activity(子场
景)拥有一个逻辑处理模块,一个 ActivityGroup 有多个
Activity,却不干预 Activity 的逻辑,这无疑细分化和模块化
了逻辑代码。ActivityGroup 和它将要内嵌的 Activity 所要实
现的功能完全可以用只一个 Activity 来完成,你可以试想,当你
把一个 ActivityGroup 和它所拥有的 Activity 的逻辑代码放在
一个 Activity 中时,那这个 Activity 会拥有多少行代码,为维
护带来非常的不便。
再来说说 TabActivity 的不足之处,首先,TabActivity 自
己独有的视图几乎没人使用(也就是难看的标签页按钮形式),国
内开发者用到的特性几乎都是从 ActivityGroup 继承下来的。还
有就是 TabActivity 的强制依赖关系,它的布局文件必须将
TabHost 作根标签,并且 id 必须为"@android:id/tabhost",
剩余11页未读,继续阅读
资源评论
ncc20140422
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功