首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Android中拖动recyclerview项目时,在溢出前开始滚动

在Android中拖动recyclerview项目时,在溢出前开始滚动
EN

Stack Overflow用户
提问于 2020-05-26 01:40:00
回答 1查看 328关注 0票数 4

在我的RecyclerView上使用ItemTouchHelper.SimpleCallback控制拖放事件,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
@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;
}

用长按拖着的物品。当拖拽项溢出屏幕时,正常开始向其方向滚动。用于拖动的支架部分位于物件的顶部,因此向下拖动时没有任何问题,但向上拖动对人们来说非常困难,因为手指会溢出设备。当没有到达屏幕边界时,或者在某些边距之前,如何开始向上/向下拖动?

EN

回答 1

Stack Overflow用户

发布于 2020-05-30 16:52:35

您可以使用库github link

添加到依赖项:

代码语言:javascript
代码运行次数:0
运行
复制
   dependencies {
    implementation 'com.thesurix.gesturerecycler:gesture-recycler:1.11.0'
}

和kotlin:

代码语言:javascript
代码运行次数:0
运行
复制
    // 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

和刷卡:

代码语言:javascript
代码运行次数:0
运行
复制
 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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62007779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档