我正在使用GestureDetector
通过ListView
控制GestureDetector.SimpleOnGestureListener
的Touch事件。
看着事件发生的顺序,我注意到了两种不同的行为,具体取决于从触摸屏幕到开始在屏幕上移动手指所经过的时间。
如果时间足够短,我会得到以下顺序:
onDown (touch)
onShowPress (short waiting)
onScroll (move)
... (move)
onScroll (move)
(release)
如果时间更长,我只会得到:
onDown (touch)
onShowPress (long waiting ...)
onLongPress (... long waiting)
(move)
... (move)
(move)
(release)
在第二种情况下,当我移动手指时,听众似乎未检测到任何事件,但是,无论哪种情况,列表视图的内容都随手指的移动而变化。
在第二种情况下,什么能检测到哪个事件允许滚动列表视图?
相关代码是这样:
MainActivity:
listView.setOnTouchListener(onTouchListener);
gestureListener = new LV_GestureListener();
mDetector = new GestureDetector(this, gestureListener);
private ListView.OnTouchListener onTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
MainActivity me = MainActivity.this;
me.mDetector.onTouchEvent(event);
return false;
}
};
LV_GestureListener:
public class LV_GestureListener extends GestureDetector.SimpleOnGestureListener {
public LV_GestureListener() {
super();
}
@Override
... event ...
@Override
... event ...
}