一个实体类RectclerItem(同上)
一个item(view_list_item)的视图文件(同上)
适配器ItemDraggableAdapter
public class ItemDraggableAdapter extends BaseItemDraggableAdapter<RecyclerItem,BaseViewHolder> { public ItemDraggableAdapter(int layoutResId, List<RecyclerItem> data) { super(layoutResId, data); } @Override protected void convert(BaseViewHolder helper, RecyclerItem item) { helper.setText(R.id.list_item_title_tv,item.getTitle()) .setText(R.id.list_item_content_tv,item.getContent()); } }
ItemDraggableActivity
public class ItemDraggableActivity extends BaseRecyclerViewActivity { private ItemDraggableAdapter itemDraggableAdapter; @Override protected int getLayoutResId() { return super.getLayoutResId(); } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); titleNameTv.setText("BaseItemDraggableAdapter实现拖拽"); itemDraggableAdapter = new ItemDraggableAdapter(R.layout.view_list_item,getListData(20)); itemDraggableAdapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_RIGHT); recyclerView.setAdapter(itemDraggableAdapter); ItemDragAndSwipeCallback itemDragAndSwipeCallback = new ItemDragAndSwipeCallback(itemDraggableAdapter); ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemDragAndSwipeCallback); itemTouchHelper.attachToRecyclerView(recyclerView); // 开启拖拽 itemDraggableAdapter.enableDragItem(itemTouchHelper,R.id.view_list_item_ll,true); itemDraggableAdapter.setOnItemDragListener(onItemDragListener); // 开启滑动删除 itemDraggableAdapter.enableSwipeItem(); itemDraggableAdapter.setOnItemSwipeListener(onItemSwipeListener); } @Override protected void onRefreshComplete() { itemDraggableAdapter.addData(0,getListData(3)); recyclerView.scrollToPosition(0); } OnItemDragListener onItemDragListener = new OnItemDragListener() { @Override public void onItemDragStart(RecyclerView.ViewHolder viewHolder, int pos) { ToastUtils.showShortToast("你在拖拽第" + (pos + 1) + "个位置的item哦!"); } @Override public void onItemDragMoving(RecyclerView.ViewHolder source, int from, RecyclerView.ViewHolder target, int to) { } @Override public void onItemDragEnd(RecyclerView.ViewHolder viewHolder, int pos) { ToastUtils.showShortToast("拖拽到了第" + (pos + 1) + "个位置哦!"); } }; OnItemSwipeListener onItemSwipeListener = new OnItemSwipeListener() { @Override public void onItemSwipeStart(RecyclerView.ViewHolder viewHolder, int pos) { ToastUtils.showShortToast("继续向左滑动即可删除第" + (pos + 1) + "个位置的item"); } @Override public void clearView(RecyclerView.ViewHolder viewHolder, int pos) { } @Override public void onItemSwiped(RecyclerView.ViewHolder viewHolder, int pos) { ToastUtils.showShortToast("删除了第" + (pos + 1) + "个位置的item哦"); } @Override public void onItemSwipeMoving(Canvas canvas, RecyclerView.ViewHolder viewHolder, float dX, float dY, boolean isCurrentlyActive) { } }; }