【发布时间】:2015-01-23 18:48:40
【问题描述】:
我的Activity 包含一个ViewPager,它是自定义的Adapter,它扩展了FragmentStatePagerAdapter。 ViewPager 包含 3 个片段
从 ViewPager 中删除 Fragments 的代码
MainActivity
public void deleteElement(){
final int currentItem = mViewPager.getCurrentItem();
mPagerAdapter.removeItem(currentItem);
mPagerAdapter.notifyDataSetChanged();
}
CustomPagerAdapter
private ArrayList<Item> data;
public void removeItem(int index){
data.remove(index);
}
删除中间Fragment(索引1)时:
- 来自
data,我正在删除正确的item。 - 问题是我(我猜)
Fragment3 在notifyDataSetChanged之后被删除,当前的Fragment仍然是用户看到的片段,并且正在加载的数据来自SavedInstance包
所以最终结果是用户仍然看到他试图删除的相同Fragment,这对他来说有点糟糕。
想法?
***** 编辑 ******
似乎ViewPager2 Features 可能会解决这个问题以及许多其他问题
【问题讨论】:
-
我建议切换到处理此问题的my
ArrayPagerAdapter。FragmentStatePagerAdapter在这方面存在问题,我并不感到非常惊讶,这就是为什么我单独推出一些东西。 -
试试this
-
好简单的解决方案:stackoverflow.com/a/35450575/2162226
-
@gnB 这不是解决这个问题的方法
标签: android android-viewpager android-pageradapter