fragment + viewpager+fragment

fragment + viewpager+fragment

应用场景:一般用在底部有导航栏顶部也有导航栏的场景中,一般的实现方式是底部的导航栏用framelayout+RadioGroup+RadioButton来处理,顶部的导航栏用viewpager+viewpagerIndicator + fragment来实现,这样就可以拥有很好的交互体验。在处理底部时通过getsupportfragmentmanamger.begainTransaction的几个函数来处理

  • add
  • replace
  • remove
    等这么几个函数。在处理顶部时会遇到的几个问题:
  • 当viewPager 使用的是fragmentpageradater时,如果在构造函数中传入的是通过getsupportfragmentmanager来获得的fragmentmanager实例时,当底部从别的tab切换回到当前的tab时,当前的底部对应的fragment中的viewpager里的fragment会出现内容无法加载或是界面错位等问题。原因是内层的fragment的周期函数没有执行。深层次的原因,我想应该还是fragmentpageradater在实现在问题。这个时候fragmentpageradapter的构造函数要传入getChildFragmentManager就可以很好的解决这个问题,(ps:到现在为止,我终于知道了这个函数的用处是什么了。)
  • 当viewpager使用的是fragmentstatepageradater时,是没有问题的,真的很神奇有没有,fragment其实到处是陷阱有没有。于是乎这里又引出了另外的一个问题,那就是fragmentpageradater与fragemntstatepageradater之间的区别了。这个问题以后有时间再来说说自己的理解和认识吧。好了今天的问题就是这么多,现在来review下:

问题:当fragment + viewpager + 多个fragment 出现内层fragment生命周期无法正常执行

解决:

  • 当viewpager使用fragmentpageradater时,在构造函数中传入getChildFragmentManager
  • 或让viewpager使用fragmentstatepageradater

新的的问题:fragmentpageradater与fragmentstatepageradapter的区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值