public class ItemDragUseActivity extends AppCompatActivity {
private String TAG = this.getClass().getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drag);
RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.rv_list);
// mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setLayoutManager(new GridLayoutManager(this,4));
List<String> mData = generateData(50);
OnItemDragListener listener = new OnItemDragListener() {
@Override
public void onItemDragStart(RecyclerView.ViewHolder viewHolder, int pos) {
Log.d(TAG, "drag start");
BaseViewHolder holder = ((BaseViewHolder) viewHolder);
// holder.setTextColor(R.id.tv, Color.WHITE);
}
@Override
public void onItemDragMoving(RecyclerView.ViewHolder source, int from, RecyclerView.ViewHolder target, int to) {
Log.d(TAG, "move from: " + source.getAdapterPosition() + " to: " + target.getAdapterPosition());
}
@Override
public void onItemDragEnd(RecyclerView.ViewHolder viewHolder, int pos) {
Log.d(TAG, "drag end");
BaseViewHolder holder = ((BaseViewHolder) viewHolder);
// holder.setTextColor(R.id.tv, Color.BLACK);
}
};
BaseItemDraggableAdapter<String, BaseViewHolder> draggableAdapter = new BaseItemDraggableAdapter<String, BaseViewHolder>(R.layout.item_drag,mData) {
@Override
protected void convert(@NonNull BaseViewHolder helper, String item) {
helper.setText(R.id.tv, item +"");
}
};
ItemDragAndSwipeCallback itemDragAndSwipeCallback = new ItemDragAndSwipeCallback(draggableAdapter);
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemDragAndSwipeCallback);
itemTouchHelper.attachToRecyclerView(mRecyclerView);//绑定recyclerview
//可以不用设置,默认就是这个
itemDragAndSwipeCallback.setDragMoveFlags(ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT);
draggableAdapter.enableDragItem(itemTouchHelper);
draggableAdapter.setOnItemDragListener(listener);
mRecyclerView.setAdapter(draggableAdapter);
}
private List<String> generateData(int i) {
ArrayList<String> strings = new ArrayList<>(i);
for (int j =
结合BaseRecyclerViewAdapterHelper实现长按拖动
最新推荐文章于 2024-04-16 17:02:26 发布