聊一聊RecyclerView的强大

一、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);

你可能感兴趣的:(聊一聊RecyclerView的强大)