1. 需求
五个tab页面,子页面也有subTab的页面;
父级标题: tab + ViewPager(5个BaseFragment) 父级tab滑动与ViewPager关联的
子级标题:subtab + ViewPager(n个BaseFragment) 子级tab滑动与ViewPager关联的
2. 问题1
有subTab页面,切换子标题没有更新,一直是第一次请求的副标题;数据请求混乱;
3.错误方案1
请求数据需要父tab的position,没有传入此position;所以一直是0;
脑子想到的第一个方法就是 通过父viewPage的selected的监听中,用EventBus去传递position;(现在想想好傻,直接初始化的时候传一个postion就ok,因为这个引发了一堆问题)
但是EventBus订阅的方法在我的复用Fragment中,所以每次发送,会发送给我的五个页面,此时五个页面都走了这个方法,也分不清,具体需要请求哪个页面了,这就是数据混乱的原因(而我此时在订阅方法中还进行了网络请求,各种判断,现在看来很脑残)
4.正确方案1
初始化Fragment时,父级Fragment时,直接传入当前Fragment的position;请求数据需要的父级position问题解决
还有由于VierPager的缓存机制,会默认创建相邻的Fragment,使用的时候尤其注意
5. 问题2
此时请求数据会请求两次
6. 错误方案2
onViewCreated()方法中 初始化请求一次数据 TabLayout.setOnTabSelectedListener()中会请求一次; 标注:首次请求setOnTabSelectedListener也会走
7.解决方法2
初始化中不要去请求数据了