ViewPager2动态删除Fragment 显示问题

2020-05-15  本文已影响0人  MarkKelp

Viewpage2 动态删除fragment时,显示的效果为删除的是Fragment列表的最后一个,不管怎么调用notifyItemRemoved或者删除fragments数据源中指定下标的数据,依旧不行。哪怕打印每个数据源的hashcode,都显示删除操作正常,数据源也正常,但是显示效果依旧为删除最后一个fragment !!!

需要重写下面两个方法解决:

准备数据源mFragments时 初始化一下mFragmentHashCodes数据源

private List<Fragment> mFragments;//数据源
private List<Integer> mFragmentHashCodes;//数据源中fragment的hashcode 一对一 增删时注意保持一致

而后重写FragmetnStateAdapter中的

@Override
public long getItemId(int position) {
    return mFragments.get(position).hashCode();
}

@Override
public boolean containsItem(long itemId) {
    return mFragmentHashCodes.contains(itemId);
}

问题解决!

上一篇下一篇

猜你喜欢

热点阅读