如何利用Android TabHost+ActivityGroup+Broadcast实现类似于iPhone的底部菜单

 1.如下图所示:

网易新闻Android版基本实现了类似于iPhone的底部菜单,但是当点击内容进入二级页面以后,底部菜单将会消失!


        


点击新闻条目后,如下图所示:   

  

   


那么如何让类似iPhone的底部菜单永久的停留在各个页面,以下是实现方案:

上图的实现过程中,当点击其中的一项如果今天另外一个Activity时,通常会跳走,没有实现保留在本页签下,不过也可以出类似的效果,也是重新启动了这个TabAcitivity。

即使这样如果点击其他页签中的跳转的话,跳转之后还是不会有iphone那种保存的效果,如果处理不当会启动好多的Activity,点击手机上的Back键时不能不能退出。


假如跳转时关闭了当前的Activity,后退时出现重新加载问题。如果使用Tabhost,ActivityGroup和BroadcastReceiver能够实现iphone效果,Tabhost页签中启动的是ActivityGroup(关于AcitivityGroup网上资料很多),Tabhost在此实现的页签的原始的作用。ActivityGroup是Activity的容器,利用它实现启动显示Activity,在AcitivityGroup中动态注册一个BroadcastReceiver用来接收Acitivity发送的广播,根据广播的内容启动相关Activity并把启动的Activity添加到ActivityGroup中,实现没有跳转TabActivity就加载出内容(返回类似,从AcitivityGroup移除当前的activity)。

相关的代码近期贴出,以供大家互相学习。


Android 移动应用开发

Android 程序员



博主设置当前文章不允许评论。

【教程】利用Android TabHost+ActivityGroup+Broadcast实现iPhone底部菜单

08-02

1.如下图所示:rnrn网易新闻Android版基本实现了类似于iPhone的底部菜单,但是当点击内容进入二级页面以后,底部菜单将会消失!rnrnrn[img=http://hi.csdn.net/attachment/201108/2/0_1312266393Gvjp.gif][/img]rn rnrnrn点击新闻条目后,如下图所示: rnrn rnrn[img=http://hi.csdn.net/attachment/201108/2/0_1312266478IlK7.gif][/img]rnrnrnrn那么如何让类似iPhone的底部菜单永久的停留在各个页面,以下是实现方案:rnrn上图的实现过程中,当点击其中的一项如果今天另外一个Activity时,通常会跳走,没有实现保留在本页签下,不过也可以出类似的效果,也是重新启动了这个TabAcitivity。rnrn即使这样如果点击其他页签中的跳转的话,跳转之后还是不会有iphone那种保存的效果,如果处理不当会启动好多的Activity,点击手机上的Back键时不能不能退出。rnrnrn假如跳转时关闭了当前的Activity,后退时出现重新加载问题。如果使用Tabhost,ActivityGroup和BroadcastReceiver能够实现iphone效果,Tabhost页签中启动的是ActivityGroup(关于AcitivityGroup网上资料很多),Tabhost在此实现的页签的原始的作用。ActivityGroup是Activity的容器,利用它实现启动显示Activity,在AcitivityGroup中动态注册一个BroadcastReceiver用来接收Acitivity发送的广播,根据广播的内容启动相关Activity并把启动的Activity添加到ActivityGroup中,实现没有跳转TabActivity就加载出内容(返回类似,从AcitivityGroup移除当前的activity)。rnrn相关的代码近期贴出,以供大家互相学习。rnrn[url=http://www.orietech.com/Android-Application-development-outsourcing.html]Android移动应用开发[/url]rnrn[url=http://www.inandroid.cn/bbs/thread-123389-1-1.html]Android实习生[/url]

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试