Android. Неплавное перемещение view по оси y
В кастомной View переопределён метод onTouchEvent, чтобы можно было перемещать вьюшку по экрану приложения. По оси X вьюшка перемещается плавно и без каких-либо проблем, но когда начинаю водить её по оси Y, она перемещается по этой оси, но на небольшое расстояние и дёргаясь. В чём может быть проблема?
class CustomTextView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : androidx.appcompat.widget.AppCompatTextView(context, attrs, defStyleAttr) {
companion object {
var xMove = 0f
var yMove = 0f
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
setParams()
}
private fun setParams() {
val params = layoutParams
params.height = 100
layoutParams = params
}
override fun onTouchEvent(event: MotionEvent?): Boolean {
when (event?.action) {
MotionEvent.ACTION_DOWN -> {
xMove = x - event.rawX
yMove = y - event.rawY
}
MotionEvent.ACTION_MOVE -> {
animate()
.x(event.rawX + xMove)
.y(event.rawY + yMove)
.setDuration(0)
.start()
}
MotionEvent.ACTION_UP -> {
performClick()
}
}
invalidate()
return true
}
override fun performClick(): Boolean {
return super.performClick()
}
}