首页 > 解决方案 > 如何更改在覆盖函数中使用的扩展类的参数?科特林

问题描述

您好,我正在使用 recyclerView ViewHolder,我遇到的问题是当我使用 onChildDraw 移动它后滑动一行,并且在将它与动画和侦听器返回到原始位置之后

viewHolder?.itemLayout?.animate()?.translationX(0f)?.setDuration(300)?.start()

因为参数“dX”的

 override fun onChildDraw(c: Canvas, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, dX: Float, dY: Float, actionState: Int, isCurrentlyActive: Boolean)

没有改变,所以仍然处于“屏幕外”,所以当我再次开始绘制时,所选行从原始位置跳转到屏幕外。

所以我的问题是

使用后如何将此 dX 参数更改为 0? viewHolder?.itemLayout?.animate()?.translationX(0f)?.setDuration(300)?.start()

这可能吗?

或者

可以在不触摸的情况下使用 onChildDraw,所以我可以使用 onChildDrawOver 创建返回到原始位置?

非常感谢!

标签: androidkotlinlisteneritemtouchhelper

解决方案


推荐阅读