【发布时间】:2019-10-27 23:56:08
【问题描述】:
我已经使用 ViewDragHelper 向组件添加了拖动功能,并且我正在尝试向组件添加淡入淡出动画,以便当用户触摸屏幕并拖动它时,它会使用动画更改组件的 alpha。 问题是动画等待用户的交互停止,然后它应用动画,因此在组件过渡期间,您看不到 alpha 动画,
override fun clampViewPositionVertical(child: View, top: Int, dy: Int): Int {
if(top < verticalRange)
return verticalRange
backgroundView.animate().alpha((backgroundView.alpha - 0.05).toFloat()).duration = 10
return top
}
触摸事件:
override fun onTouchEvent(event: MotionEvent): Boolean {
return if (isDragEnabled && (isControlScreenLayoutTarget(event) || isMoving)) {
viewDragHelper.processTouchEvent(event)
true
} else {
super.onTouchEvent(event)
}
}
【问题讨论】:
-
您应该添加
onTouchEvent的代码以使其更清晰。 -
@DuyKhanhNguyen 我已经编辑了问题并添加了 onTouchEvent
-
您的代码块之间没有任何联系,我们不知道您如何/在哪里调用
clampViewPositionVertical。您应该添加足够多的代码以适应流程。 -
@DuyKhanhNguyen 如果您需要,我会添加更多代码,但该错误与拖动流程无关。我在clampViewPositionVertical 函数中添加了一些日志,并且我知道该函数已被调用,但alpha 动画在用户触摸/交互停止之前不起作用。
标签: android animation viewdraghelper