一、RecyclerView的上下拖拽和左右侧滑删除。
这就涉及到ItemTouchHelper类,点进去一看,又双叒叕是extends RecyclerView.ItemDecoration类,RecyclerView.ItemDecoration的其他用处,后面聊聊。
现在接到一个需求,第一个item不能拖动也不能侧滑,第二个item不能向上拖动可以向下拖动和左右侧滑,其他的item都可以,好了满足上面的需求这就涉及到ItemTouchHelper的4个重写方法。
1.设置可以拖拽。
2.getMovementFlags(),这个方法就是指定拖拽和侧滑的标志的。真正指定标志的是makeMovementFlags(int dragFlags,int swipeFlags)。
方法也是这样说明,用来创造移动标志,如果你想拖拽和左右滑动你可以调用这个方法。
那我们着手开始实现,分别指定拖拽和侧滑方向
说明:ItemTouchHelper.ACTION_STATE_IDLE这个是状态空闲状态,这个状态是用户没有相关动作,或者未触发拖拽和侧滑。
3.处理拖拽事件。
拖拽之后我们使item停留在拖拽的位置,
关键的方法是notifyItemMoved(int i1,int i2),有两个参数,第一个参数是原来的位置,第二个参数是被拖拽的位置,然后通知adapter去更新ui。
4.处理侧滑事件
这个就很容易了,移除对应滑动的item。
最后ItemTouchHelper要绑定RecyclerView。
itemTouchHelper.attachToRecyclerView(mRecyclerviewUpMemberCard);
网友评论