使用ItemTouchHelper控制RecyclerView中滑动项的速度

4

我试图使用ItemTouchHelper在RecyclerView的项上实现滑动手势,但默认的滑动速度非常快,我需要稍微慢一点。如何控制滑动速度?

使用RecyclerView ItemTouchHelper,我正在尝试为recyclerview列表项实现弹簧类型行为,因为我想为我的应用程序构建“滑动回复”功能,但是ItemTouchHelper提供的滑动速度非常快,这对用户体验不好,所以是否有任何方法或解决方法可以减少ItemTouchHelper类中的滑动速度?

1个回答

0
我在处理类似功能时看到了你的留言。如果你还在寻找解决方案,以下是可能有所帮助的方法:
只需将用户操作引起的水平位移进行分割。在我的情况下,将其除以10效果不错。你可以根据自己的需求调整这个值。
val swipeHelper =
    ItemTouchHelper(
        object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
            override fun onMove(
                recyclerView: RecyclerView,
                viewHolder: RecyclerView.ViewHolder,
                target: RecyclerView.ViewHolder,
            ) = true

            override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {}

            override fun onChildDraw(
                canvas: Canvas,
                recyclerView: RecyclerView,
                viewHolder: RecyclerView.ViewHolder,
                dX: Float,
                dY: Float,
                actionState: Int,
                isCurrentlyActive: Boolean,
            ) {
                super.onChildDraw(
                    canvas,
                    recyclerView,
                    viewHolder,
                    dX / 10,
                    dY,
                    actionState,
                    isCurrentlyActive
                )
            }
        }
    )
swipeHelper.attachToRecyclerView(rvList)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接