gpt4 book ai didi

android - ViewPager 切换 FragmentPagerAdapter

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:06 26 4
gpt4 key购买 nike

我有一个 ViewPager,它由一个 FragmentPagerAdapter 填充。我想从第一个适配器换成另外两个。问题是之前加载的所有页面(同时具有第一个适配器)仍然是旧页面。

我查看了FragmentPagerAdapter 的源代码,猜测问题的发生是因为instatiateItem() 实现。使用其中包含位置和容器 ID 的标签,该方法检查该位置是否已经有一个 Fragment。当有带有此标签的 Fragment 时,它会被附加。设置新适配器时容器 ID 和位置不会更改,因此它会找到旧的 Fragment

你知道删除所有旧 fragment 的方法吗?

最佳答案

我意识到 Fragment 标签使用的是通过 getItemId() 获取的 id 而不是位置。为了解决我的问题,我覆盖了 getItemId() 并在不同的 FragmentPagerAdapter 中使用了完全不同的 ID。

@Override
public long getItemId(int position) {
return mPagerId*100+position;
}

mPagerId 是在构造函数中分配的唯一整数。如果您的页面超过 100 页,则应将 100 替换为 1000。

关于android - ViewPager 切换 FragmentPagerAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11671221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com