在onLongPress事件之后,ListView如何继续滚动而没有onScroll事件

时间:2019-05-04 16:01:45

标签: android

我正在使用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 ...
}

0 个答案:

没有答案