scrollowView实现停止的监听。通过handler发送消息。根据竖直方向上y坐标是否相等判读是否停止。
scrollView.setOnTouchListener(new View.OnTouchListener() {
private int lastY = 0;
private int touchEventId = -9983761;
int scrollY;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
View scroller = (View) msg.obj;
if (msg.what == touchEventId) {
if (lastY == scroller.getScrollY()) {
handleStop(scroller);
} else {
handler.sendMessageDelayed(handler.obtainMessage(touchEventId, scroller), 5);
lastY = scroller.getScrollY();//不断的赋值y坐标。
}
}
}
};
@Override
public boolean onTouch(View v, MotionEvent event) {
//当手抬起来的时候,发送消息
if (event.getAction() == MotionEvent.ACTION_UP) {
handler.sendMessageDelayed(handler.obtainMessage(touchEventId, v), 5);
}
return false;
}
//处理真正的事件
private void handleStop(Object view) {
ScrollView scroller = (ScrollView) view;
scrollY = scroller.getScrollY();
Log.e(TAG, "handleStop: " );
}
});