簡體   English   中英

Android中拖拽recyclerview項時溢出前開始滾動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM