在RecyclerView焦点上滑动动作菜单并向后滑动问题

我正在尝试在RecyclerView中实现一个简单的滑动操作菜单,并且我试图使用一个简单的方法,即使用ItemTouchHelper和包含该行本身以及下面附有按钮的布局(每一行)下面该行。我应该给他们看一下。

虽然布局按预期工作,但我仍然遇到许多重要问题。这是屏幕截图:

在RecyclerView焦点上滑动动作菜单并向后滑动问题

问题如下:

  • 我需要在按钮上单击3次以使触摸发生
  • 执行此操作时,除非再次单击并将其从行的最末端拖动,否则无法将其滑回原位。如果我不单击按钮,则可以正常向后滑动行。

这是我目前正在使用的简单ItemTouchHelper回调:

class FileSwipeCallback :
    ItemTouchHelper.SimpleCallback(1,1) {

    override fun getMovementflags(
        recyclerView: RecyclerView,viewHolder: RecyclerView.ViewHolder
    ): Int {
        return if (viewHolder is FileAdapter.FileViewHolder) {
            val swipeflags = ItemTouchHelper.START or ItemTouchHelper.END
            makeMovementflags(0,swipeflags)
        } else 0
    }

    override fun onmove(
        recyclerView: RecyclerView,viewHolder: RecyclerView.ViewHolder,target: RecyclerView.ViewHolder
    ): Boolean {
        return true
    }

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

    override fun onChildDraw(
        c: Canvas,recyclerView: RecyclerView,dX: Float,dY: Float,actionState: Int,isCurrentlyactive: Boolean
    ) {
        if (actionState == ItemTouchHelper.actION_STATE_SWIPE) {
            // Swipe left
            if (dX < 0) {
                (viewHolder as FileAdapter.FileViewHolder).itemView.findViewById<ConstraintLayout>(
                    R.id.fileItemactions
                ).visibility = View.VISIBLE
                val transitionX = 0.295f * dX
                getDefaultUIUtil().onDraw(
                    c,recyclerView,(viewHolder.itemView.findViewById(
                        R.id.fileInfoRow
                    )),transitionX,dY,actionState,isCurrentlyactive
                )
            }
        }
    }
}

我非常感谢您提供解决方案。我已经在Stack Overflow上进行过搜索,但只发现不清楚或不完整的解决方案。

编辑:使用新的和更经典的两层方法更新了问题。可见的结果是相同的,但是问题有所改变。

iCMS 回答:在RecyclerView焦点上滑动动作菜单并向后滑动问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1503704.html

大家都在问