Gab*_*ner 4 android android-fragments android-viewpager
我有一个ViewPager由一个人填充的FragmentPagerAdapter.我想从第一个适配器换另一个.问题是之前加载的所有页面(在使用第一个适配器时)仍然是旧的.
我查看了源代码FragmentPagerAdapter并猜测问题是否因为instatiateItem()实现而发生.使用具有位置和conatiner id的标签,该方法检查Fragment该位置是否已存在a .如果有Fragment这个标签,则附上.设置新适配器时,容器ID和位置不会更改,因此它会找到旧Fragment的适配器.
你知道一种删除所有旧片段的方法吗?
Gab*_*ner 10
我意识到Fragment标签使用的是id,getItemId()而不是位置.为了解决我的问题,我已经覆盖getItemId()并在不同的FragmentPagerAdapters中使用完全不同的ID .
@Override
public long getItemId(int position) {
return mPagerId*100+position;
}
Run Code Online (Sandbox Code Playgroud)
mPagerId是在构造函数中分配的唯一整数.如果您有超过100页,则应将1000替换为1000.
| 归档时间: |
|
| 查看次数: |
5672 次 |
| 最近记录: |