首先先上效果图
1.在moudle中的build引用
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha06'
2.创建列表的adapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<Subject> datas; private Context mContext; private LayoutInflater mLiLayoutInflater; public MyAdapter(List<Subject> datas, Context context) { this.datas = datas; this.mContext = context; this.mLiLayoutInflater = LayoutInflater.from(mContext); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(mLiLayoutInflater.inflate(R.layout.item_tuodong, parent, false)); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.tv_title.setText(datas.get(position).getTitle()); holder.img.setImageResource(datas.get(position).getImg()); } @Override public int getItemCount() { return datas == null ? 0 : datas.size(); } public class ViewHolder extends RecyclerView.ViewHolder { TextView tv_title; ImageView img; LinearLayout ll_item; public ViewHolder(View itemView) { super(itemView); tv_title = itemView.findViewById(R.id.tv_title); img =itemView.findViewById(R.id.img); ll_item = itemView.findViewById(R.id.ll_item); } } }
3.重点就是创建拖拽的lisilistener
public abstract class OnRecyclerItemClickListener implements RecyclerView.OnItemTouchListener { private GestureDetectorCompat mGestureDetector; private RecyclerView recyclerView; public OnRecyclerItemClickListener(RecyclerView recyclerView) { this.recyclerView = recyclerView; mGestureDetector = new GestureDetectorCompat(recyclerView.getContext(), new ItemTouchHelper