前几天用了个app发现左滑可以返回首页,发现这个功能很炫酷,就想着自己能不能做出来,于是研究了一下

原理
原理很简单,但实现起来可能有些坑。这里记录一下。源码参考
处理onInterceptTouchEvent
事件拦截要处理一件事情:确定这次触摸事件是不是应该交给SlideFinishLayout的onTouchEvent处理。
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
val action = ev.action
when (action){
MotionEvent.ACTION_DOWN -> {
mLastX = ev.x.toInt()
mIsDrag = false
}
MotionEvent.ACTION_MOVE -> {
mScroller.computeScrollOffset()
mIsDrag = !mScroller.isFinished
val deltaY:Int = ev.x.toInt() - mLastX
if (deltaY >= mTouchSlop){
mIsDrag = true
}
}
}
return mIsDrag
}