[6.7.0][视角变换] 优化视角切换控件的拖动逻辑

This commit is contained in:
renwj
2024-10-23 17:03:04 +08:00
parent aca4b4c56c
commit 344a63edff

View File

@@ -39,21 +39,30 @@ class VisualAngleToggleView : FrameLayout, IMoGoVisualAngleChangeProvider.OnMoGo
val defaultSlop = AutoSizeUtils.dp2px(context, 12.0f)
val scrollSlop = max(context.let { ViewConfiguration.get(it).scaledTouchSlop }, defaultSlop)
val gestureDetector = GestureDetector(context, object : GestureDetector.SimpleOnGestureListener() {
private var flag = false
override fun onDown(e: MotionEvent): Boolean {
flag = false
return true
}
override fun onScroll(e1: MotionEvent, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean {
if (flag) {
return super.onScroll(e1, e2, distanceX, distanceY)
}
val absX = abs(e2.x - e1.x)
val absY = abs(e2.y - e1.y)
if (absY <= absX) {
return false
}
if (e2.y - e1.y >= scrollSlop) {
flag = true
moveToBottom()
return true
}
if (e1.y - e2.y >= scrollSlop) {
flag = true
moveToTop()
return true
}