`
xun005
  • 浏览: 39541 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ViewPager+TabHost 实现选项卡页面间滑动(转)

 
阅读更多

转自http://flycatdeng.iteye.com/blog/1738249

一、现象:

通过ViewPager+TabHost可以实现点击选项卡滑动,或者通过手势拖动滑动。因为考虑到组件比较多,不能将所有的组件监听响应写在一个类,所以需要既可以在ViewPager中的视图“点击”(以一个按钮为例)响应又能在TabHost中的activity“点击”响应的效果。

很幸运,按钮能响应,但是将按钮组件的监听方法写到onResume方法中的时候,按钮就不能响应了,但是能够打印语句,能加载数据。可以为什么按钮等组件不能更改UI了呢?

 

二、分析:

我在需要滑动的三个activity中的onCreate,onStart,onResume方法中分别打印输出作为判断该方法执行了的方式System.out.println("A onCreate");,,,

结果发现都是ViewPager会将三个Activity的视图添加到自己的队列以便滑动显示,所以一开始三个Activity A B C 都有打印 onCreateonStart然后再是TabHost添加Activity,当显示A的时候A才打印onresume,但是还是没用,因为这个时候显示的视图都是ViewPager中的View


 

 

三、解决:

之前试了很多办法,线程,handler等都没有用。其实像按钮等的监听以及listview等的监听都可以写在oncreate中,需要动态判断显示UI活加载数据的写在onresume中。

解决:将需要动态显示隐藏或要改变值的组件的设置为static,这样ViewPagerTabHost访问的都是同样的属性。

 

四、效果:

 

 

五、源码下载:

http://www.kuaipan.cn/file/id_6460760389584413.htm

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics