通常Recycler给Adapter赋上数据源的时候利用:
adapter.notifyDataSetChanged();
这样一般是在初始化界面 从网络获取到数据后 直接赋给adapter的写法。
然后再动态的增加条目,又希望带有动画效果,可以这么写:
adapter.notifyItemRangeInserted(int positionStart, int itemCount);
嗯,在RecyclerView中 数据给加上去了 并且有一个动画效果。
但是,注意Adapter 中,这个数据源并没有增加。
这时,就要用到 notifyDataSetChanged() 这个方法了
在 调用加入的方法后 再调用全部刷新的方法。我的写法是这样的:
adapter.notifyItemRangeInserted(int positionStart, int itemCount);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
},400);
利用Handler延时400ms 刷新 这样写是因为加入时的动画效果有那么一小段时间,如果不延时直接刷新的话动画会卡顿,不信可以去试试。
删除也是同理。