04 | Android 项目笔记 清空ViewPager已存在

2018-08-23  本文已影响402人  itkluo88

页面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();

    }

}

~~~

上一篇下一篇

猜你喜欢

热点阅读