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