解决来源:
最佳:https://blog.csdn.net/lyabc123456/article/details/79797552
问题:
在项目中使用ViewPager+Fragment实现主界面。但是遇到一个问题:在不退出当前Activity的情况下,重新加载Fragment,却得到了空白界面,并没有生成新的Fragment添加进去。
原因:
这个问题可能是由于旧的Fragment没有被清除导致的。
分析过程:
1. 最开始是觉得在Handler里再调用一次初始化数据的方法就行,但是返回是空白页,
2. 然后百度说是Fragment 对应的数据集发生改变时,希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容, 也不会生效。
3. 如上图链接的方法, 好用 !!(这样虽然好用,但是不应该把fm层的代码提上来,不规范。)
此部分为链接内容,方便查看:
即首先查看源码: FragmentPagerAdapter 类的创建实例的函数 instantiateItem :
@NonNull
public Object instantiateItem(@NonNull ViewGroup container, int position) {
if (this.mCurTransaction == null) {
this.mCurTransaction = this.mFragmentManager.beginTransaction();
}
long itemId = this.getItem