[6.7.0][视角变换] 优化视角切换控件的拖动逻辑
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user