[Android 笔记十] Viewpager+Fragment 遇到的坑--数据源改变,更新UI为空白界面

解决来源:

最佳:https://blog.csdn.net/lyabc123456/article/details/79797552

较佳:https://blog.csdn.net/bailichun19901111/article/details/99670381?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param

问题:

在项目中使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值