Мой Activity
содержит ViewPager
и пользовательский Adapter
, который расширяет FragmentStatePagerAdapter
. ViewPager
содержит 3 фрагмента
Код для удаления фрагментов из ViewPager
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
. - Проблема в том, что я (я думаю)
Fragment
3 удаляется послеnotifyDataSetChanged
, а текущийFragment
по-прежнему является фрагментом, который видел пользователь, и загружаемые данные из пакетаSavedInstance
Таким образом, конечный результат заключается в том, что пользователь все еще видит тот же самый Fragment
, который он пытался удалить, что для него отстой.
Идеи?
***** РЕДАКТИРОВАТЬ ******
Похоже, ViewPager2 Возможности могут решить эту проблему, а также многие другие проблемы