`

ViewPager+TabHost 实现选项卡页面间滑动,组件不能动态更改UI问题的解决!

阅读更多

一、现象:

通过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

  • 描述: resume之后
  • 大小: 23.9 KB
  • 描述: 滑动效果
  • 大小: 21.5 KB
  • 描述: resume之前
  • 大小: 29.3 KB
  • 描述: 创建过程
  • 大小: 5.3 KB
1
1
分享到:
评论
2 楼 flycatdeng 2013-04-28  
jy02411368 写道
你好,请教个问题我下了你的demo 但是发现左右切换的时候只有第一页会更新修改的ui后面几页不管是放在onreumes方法还是怎么样都不会更新ui但却是执行了请问如何解决?搞了好几天了

不是很明白你说的问题,能说详细点么?
1 楼 jy02411368 2013-04-27  
你好,请教个问题我下了你的demo 但是发现左右切换的时候只有第一页会更新修改的ui后面几页不管是放在onreumes方法还是怎么样都不会更新ui但却是执行了请问如何解决?搞了好几天了

相关推荐

    Android高级应用源码-ViewPager和Tabhost结合,可滑动的tabhost.zip

    【标题】"Android高级应用源码-ViewPager和Tabhost结合,可滑动的tabhost.zip"涉及的关键技术点主要是Android中的ViewPager和TabHost组件的整合,以实现一个可滑动的TabHost效果。这两个组件是Android开发中常用的...

    自定义tabhost(动态添加选项+带自动水平滑动选项卡+手势切换选项卡及内容功能)

    自定义TabHost主要是通过继承TabHost类并覆盖其方法,或者利用其他UI组件(如ViewPager)来实现更加灵活的选项卡切换效果。在这个过程中,我们通常会用到以下组件: 1. TabWidget:显示选项卡的视图。 2. ...

    安卓FragmentTab选项卡相关-Android实现ViewpagerFragment效果.rar

    在Android应用开发中,Fragment是UI组件的重要组成部分,它允许我们构建可动态组合和分解的用户界面。FragmentTab选项卡通常结合ViewPager一起使用,提供一个高效的界面切换方式,让用户可以在多个视图之间平滑地...

    Tabhost实现底部选项卡,内含Fragment和viewPage实现滑动效果

    在Android应用开发中,创建一个具有底部选项卡和滑动内容的界面是非常常见的需求,这可以提供用户友好的多视图导航。`TabHost`、`Fragment`和`ViewPager`是实现这一功能的关键组件。本篇文章将深入讲解如何利用这三...

    android tabhost(选项卡)滑动分页

    总的来说,这个项目涵盖了Android UI设计中的几个关键组件和概念:TabHost用于选项卡布局,ViewFlipper实现简单的滑动效果,而GestureDetector则增强了用户的触摸交互。这些技术的组合使用,使得应用能够在有限的...

    android 可以滑动的tabhost

    TabHost是Android原生的一个组件,用于创建带有多个选项卡的界面,而ViewPager则允许用户通过滑动屏幕来浏览多个页面。下面我们将详细探讨如何实现一个可滑动的TabHost,并涉及相关的Android库和API。 1. TabHost与...

    ActivityGroup + GridView + ViewFlipper 实现选项卡.rar

    在选项卡设计中,`ViewFlipper`可以用来实现平滑的视图切换效果,比如左右滑动来切换不同的选项卡内容。通过调用`ViewFlipper`的`startFlipping()`和`stopFlipping()`方法,可以控制视图的自动翻转或停止。同时,...

    tabhost滑动刷新.rar

    将`TabHost`与`ViewPager`结合,可以创建一个可滑动的选项卡栏,每个选项卡对应`ViewPager`中的一个页面。 3. **上下拉刷新**: 上下拉刷新是一种常见的移动应用交互设计,用户可以通过下拉屏幕来刷新数据。在...

    安卓FragmentTab选项卡相关-终于找到一个快速嵌入项目简单好用的TabLayoutViewPager的Demo了.rar

    在Android应用开发中,`FragmentTab`和`TabLayout`结合`ViewPager`是常见的实现页面切换和选项卡功能的方式。这个`Demo`提供了一个快速、简单且实用的解决方案,适用于那些希望快速集成选项卡功能到自己项目的开发者...

    FragmentTabHost和viewPager实现仿微信主界面

    6. **设置监听器**:为了在选项卡改变时更新`ViewPager`的当前页面,你可以设置`TabHost.OnTabChangeListener`,并在`onTabChanged()`方法中调用`viewPager.setCurrentItem(tabPosition)`。 通过以上步骤,我们就能...

    android导航选项卡滑动效果源码.zip

    本资源"android导航选项卡滑动效果源码.zip"提供了一个实现平滑滑动交互的导航选项卡条的源代码。下面我们将详细探讨相关知识点。 1. **Android Navigation组件**: - Android提供了多种实现导航选项卡的方式,...

    Android可滑动选项卡

    早期,开发者可能会使用TabHost组件来实现这种效果,但现在,随着Android SDK的更新和最佳实践的发展,大部分开发者选择使用Fragment配合ViewPager来创建可滑动选项卡,因为这种方式提供了更大的灵活性和更好的用户...

    android Tab选项卡

    首先,Android中的Tab选项卡实现方式多样,可以使用`TabHost`、`ViewPager`配合`TabLayout`或者基于`Fragment`的方式。在描述中提到的实现方式是通过在同一`Activity`中切换不同的布局文件来达到切换Tab的效果。这种...

    Andoird中UI布局之Table选项卡

    在Android开发中,UI设计是至关重要的一环,而选项卡(Tab)作为用户界面中常见的导航元素,能够帮助用户在多个视图之间轻松切换。本文将深入探讨Android中实现选项卡的三种主要方法,并结合提供的"TabDemo"项目进行...

    TabLayoutSwipeableView:如何使用片段和viewpager创建选项卡布局。 您还可以在选项卡视图之间滑动,因为它是viewpager的功能,使用TabHost时无法实现

    综上所述,`TabLayoutSwipeableView`项目演示了如何利用`Fragment`、`ViewPager`和`TabLayout`在Android应用中创建一个具有滑动选项卡的界面,提供了一种优于传统`TabHost`的解决方案。开发者可以根据自己的需求进行...

    安卓FragmentTab选项卡相关-ViewPager仿微信分页导航多Activity载入.rar

    这个压缩包文件“安卓FragmentTab选项卡相关-ViewPager仿微信分页导航多Activity载入.rar”似乎提供了一个示例,展示了如何在Android应用中模仿微信的分页导航功能,同时使用多个Activity来承载内容。以下是对这些...

    安卓FragmentTab选项卡相关-Fragment实现tab切换不坑自用.zip

    在这个"安卓FragmentTab选项卡相关-Fragment实现tab切换不坑自用.zip"压缩包中,我们可以看到一个关于如何使用Fragment实现Tab切换的实例。 首先,我们要理解FragmentTab的基本原理。通常,我们会使用ActionBar或者...

    安卓FragmentTab选项卡相关-ViewPagertab视差效果sticky效果的demo.rar

    在Android应用开发中,FragmentTabHost是用于实现选项卡切换的一种常见组件,它结合了Fragment和TabHost的功能,使得在不同Tab中可以加载不同的Fragment,从而实现内容的切换。而ViewPager则是一个强大的滑动页面...

    安卓FragmentTab选项卡相关-ViewPagerFragment模仿百度贴吧客户端滑动tab功能.zip

    这个压缩包“安卓FragmentTab选项卡相关-ViewPagerFragment模仿百度贴吧客户端滑动tab功能.zip”显然包含了一个实例,展示了如何使用Fragment和ViewPager来创建类似百度贴吧客户端的滑动选项卡功能。现在我们将详细...

    Android快速实现选项卡

    在Android应用开发中,选项卡(Tab)是一个常见的UI组件,用于展示多个相互关联的视图或内容。它可以帮助用户在不同的功能之间轻松切换,提高应用程序的可用性和用户体验。本教程将详细介绍如何在Android中快速实现...

Global site tag (gtag.js) - Google Analytics