如何监听android的屏幕滑动停止事件

2025-03-10 15:12:53
推荐回答(2个)
回答1:

一般情况下,你在MotionEvent.ACTION_UP或者MotionEvent.ACTION_POINTER_UP等UP事件的回调中处理即可,因为手指在屏幕上如果按着即使不动的情况下,其实Action_move仍在回调,就是用户比较难模拟出来那种完全手指按着屏幕一个像素点也没有动的情况。
或者你不想在UP事件中处理,那么就在Move中检测单位事件内移动的具体,比如100ms内如果用户手指移动距离小于你自己定义的阀值的话,可以认为用户没有移动手指。
写了半天才发现你问的不是这个问题。
你的问题可以通过先计算你将要滑动屏幕到的最终位置,然后通过判断你现在已经滑动到的位置,如果两个位置间的距离小于某个阀值比如一像素的话,那么就可以看做屏幕滑动停止了。

可以参考一下launcher中对屏幕滑动结束的处理逻辑。

回答2:

android的屏幕滑动停止事件监听方法为:
1、自定义一个ScrollView,内容只要将标准的ScrollView 拷贝出来,然后就可以利用Scroller的两个属性去判断是否滚动完毕:
public final boolean isFinished() {
return mFinished;
}
public final int getDuration() {
return mDuration;
}
2、启动线程来获得当前的scrollview的高度,并实时更新就可以了,一旦高度不再发生变化则判断为停止。