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);
}
问题解决!