页面ResourceFragment组成: Tab+ViewPager, ViewPager每一页存Fragment。
标签头Tab数据由接口返回, 而添加到ViewPager的页面是根据标签头Id请求接口返回
现在要求收到通知刷新这个页面-----即重新请求标签头,根据标签加载页面, 所以要先清空原来 ViewPager中的页面。
每一个Fragment这个就是----ResourceFragment,都有FragmentManager,保存其中添加的Fragment,所以我们添加到ViewPager都在FragmentManager里面, 所以只要找到添加并清除就好了, 组织语言总匮乏,直接上代码吧
~~~
private void clearFragmentCache() {
try {
if (mAdapter ==null) {
return;
}
int size =fragments.size();
FragmentManager mFragmentManager = getChildFragmentManager();
FragmentTransaction mCurTransaction = mFragmentManager.beginTransaction();
for (int i =0; i < size; i++) {
String name =mAdapter.makeFragmentName(mViewPager.getId(), i);
Fragment fragment = mFragmentManager.findFragmentByTag(name);
if (fragment !=null) {
mCurTransaction.remove(fragment);
}
}
mCurTransaction.commitNowAllowingStateLoss();
}catch (Exception e) {
e.printStackTrace();
}
}
~~~
网友评论