在recyclerview中使用ItemTouchHelper控制滑动项目速度

问题描述 投票:0回答:1

我尝试使用 itemTouchHelper 在 recyclerview 项目上实现滑动手势,但是默认的滑动速度非常快,我需要慢一点。如何控制滑动速度?

使用 RecyclerView ItemTouchHelper 我正在尝试为 recyclerview 列表项实现 spring 类型行为,因为我想为我的应用程序构建一个“滑动回复”功能,但是 itemTouchHelper 提供的滑动速度非常快,这对于用户体验,那么有什么方法或解决方法可以降低 itemTouchHelper 类中的滑动速度吗?

android swipe
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)
© www.soinside.com 2019 - 2024. All rights reserved.