Rus*_*iev 4 android android-layout android-constraintlayout
我想在用户单击或滑动时播放动画。但是我们可以在 MotionLayout 中处理这两种行为吗?它们可以完美地分开工作,但如果我在同一场景中添加OnClick和OnSwipe ,则只有OnClick有效。有什么解决方法吗?
是的,您可以通过从 MotionScene 中删除 onClick 行为来解决此问题,并通过扩展 MotionLayout 和重写来自行实现单击dispatchTouchEvent。
在此函数中,您可以决定触摸事件是否是您希望发生 onClick 行为的“目标区域”内的单击。
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
if (touchEventInsideTargetView(clickableArea, ev)) {
when (ev.action) {
MotionEvent.ACTION_DOWN -> {
startX = ev.x
startY = ev.y
}
MotionEvent.ACTION_UP -> {
val endX = ev.x
val endY = ev.y
if (isAClick(startX!!, endX, startY!!, endY)) {
if (doClickTransition()) {
return true
}
}
}
}
}
return super.dispatchTouchEvent(ev)
}
Run Code Online (Sandbox Code Playgroud)
有关此内容的帖子和完整的代码示例可以在这里找到: https ://medium.com/vrt-digital-studio/picture-in-picture-video-overlay-with-motionlayout-a9404663b9e7
| 归档时间: |
|
| 查看次数: |
4931 次 |
| 最近记录: |