![](/img/trans.png)
[英]More than one item in recyclerview is selected when scrolling down in Android
[英]Start scrolling before overflow when dragging the recyclerview item in Android
在我的RecyclerView
上使用ItemTouchHelper.SimpleCallback
控制拖放事件,如下所示:
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
int fromPosition = viewHolder.getAdapterPosition();
int toPosition = target.getAdapterPosition();
Collections.swap(adapter.getShelves(), fromPosition, toPosition);
adapter.notifyItemMoved(fromPosition, toPosition);
return true;
}
長按拖動的項目。 當拖動項超出屏幕時,通常會逐步開始向其方向滾動。 用於拖動的支架部分位於項目的頂部,因此向下拖動時沒有任何問題,但由於手指溢出設備,因此向上拖動對人來說非常困難。 如何在未達到或在屏幕邊界的某個邊距之前開始向上/向下拖動?
您可以使用庫 github鏈接
添加到依賴項:
dependencies {
implementation 'com.thesurix.gesturerecycler:gesture-recycler:1.11.0'
}
和 kotlin:
// Define your RecyclerView and adapter as usually
val manager = LinearLayoutManager(context)
recyclerView.setHasFixedSize(true)
recyclerView.layoutManager = manager
// Extend GestureAdapter and write your own
// ViewHolder items must extend GestureViewHolder
val adapter = MonthsAdapter(R.layout.linear_item)
adapter.data = months
recyclerView.adapter = adapter
和滑動:
val gestureManager = GestureManager.Builder(recyclerView)
// Enable swipe
.setSwipeEnabled(true)
// Enable long press drag and drop
.setLongPressDragEnabled(true)
// Enable manual drag from the beginning, you need to provide View inside your GestureViewHolder
.setManualDragEnabled(true)
// Use custom gesture flags
// Do not use those methods if you want predefined flags for RecyclerView layout manager
.setSwipeFlags(ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT)
.setDragFlags(ItemTouchHelper.UP or ItemTouchHelper.DOWN)
.build()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.