做项目的时候用TabLayout+ViewPager+Fragment第一次加载没有问题能够显示出来fragment里面的数据也是对的,但是当tablayout数据变了后传到fragment数据传的时候是对的但是fragment收到的数据还是第一次传的,感觉很诧异。找了半天发现是fragment有缓存需要在第二次加载的时候清理然后再加载到viewpager代码如下:
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
if (null != fragmentTransaction) {
List<Fragment> fragments = getChildFragmentManager().getFragments();
if (!fragments.isEmpty()) {
for (int mm = 0; mm < fragments.size(); mm++) {
if (null != fragments.get(mm)) {
fragmentTransaction.remove(fragments.get(mm)).commitNowAllowingStateLoss();
}
}
}
}
然后传值就没有问题了 这是刷新整个tablayout+ViewPager+Fragment的方法
如果想刷新单个Fragment里面recycleview的要先clean数据再刷新adpter再加数据再刷新adpter