如何取消ListView项目中的触摸拖动事件?

时间:2013-11-18 14:49:48

标签: android android-listview

我正在实施类似于Android Gmail应用中的滑动手势,您可以在其中拖动项目进行存档。

我在项目视图中附加了一个触摸侦听器,并且手势探测器和听众可以听到这样的触摸事件:

GestureDetector.OnGestureListener gl;
gl = new GestureDetector.SimpleOnGestureListener() {
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float dx, float dy) {
        // ... handle horizontal scrolling
        return true;
    }
};
final GestureDetector gd = new GestureDetector(getContext(), gl);
itemView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent e) {
        gd.onTouchEvent(e);
        // ... handle TOUCH_UP and TOUCH_CANCEL
        return true;
    }
});

问题在于,一旦我开始垂直拖动,或者超出项目视图的边界,手势就会被取消,列表视图会开始处理它以进行正常的垂直列表滚动。我需要在用户释放手指之前取消手势,即使它移出表格单元格,就像在Gmail应用程序中完成一样。

我如何取消它?

0 个答案:

没有答案