android Viewpager中fragment的数据刷新

最近在做一个项目,主要的数据页面采用的是viewpager+fragment形式展示的,在开发过程中遇到了fragment数据更新问题:项目中我有4个fragment:fragmentA、fragmentB、fragmentC、及fragmentD,在fragmentB触发点击listview任一个item中的button时需要改变fragmentB中button状态和刷新fragmentC的页面数据。
正常情况下,ViewPager会默认加载当前页和当前页的左右两页。一开始当前页是下标0,所以一开始默认加载第0页(指下标,下同)和第1页。当你向右滑动,当前页为第1页时,ViewPager会加载第2页,这时一共有3页存在(第0,1,2页)。再向右滑动,当前页为第2页时,会移除第0页,加载第3页,同理向左滑动当前页为第1页时,会移除第3页。因此fragmentB触发点击事件时并不能实时改变相关控件状态和实现数据刷新。(因为fragmentB内容是listview,且每个listview的item都有一个Button,如果使用notifydatasetchanged(),那么点击一个Button,所有的Button状态都会改变),最后不断查资料、调试和请教他人,得到了一个解决方法,自己将解决思路记录一下,方便以后自己查阅,也为跟我碰到同样类似问题的小伙伴们提供一条思路,有不对的地方或者有更好建议请留言提出,大家一块学习。。。。。。
viewpager中如何嵌套fragment以及如何实现滑动和点击fragment之间的跳转功能百度有一大堆,我就不多说了,下面切入正题.解决思路:给每一个Fragment都打上了一个标签,通过标签来寻找相应的fragment,就可以对该fragment进行更新
首先,我们在viewpager所在的java类中定义一个List<String> tagLists 来存储一下tag.(注意:因为我的viewpager的适配器java类写在了viewpager所在的java类中,所以我定义在这里。若你的适配器java类是独立封装起来的,那么就在独立封装的适配器java类中定义List<String> tagLists)。

                
  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值