如何避免拦截所有触摸事件?

时间:2014-09-27 10:06:13

标签: android ontouchlistener

有这个https://github.com/03uk/RippleDrawable 在非L设备上创建波纹效果的美妙实现。

正如您所看到的那样,Drawable实现了OnTouchListener

问题是Drawable拦截了所有触摸事件,因此无法在ListViews和类似的中使用。

如何避免它?

我认为问题出在https://github.com/03uk/RippleDrawable/blob/master/app/src/main/java/dreamers/graphics/RippleDrawable.java

,特别是在这里:

@Override
public boolean onTouch(View v, MotionEvent event) {
    final int action = event.getAction();
    switch (action){
        case MotionEvent.ACTION_DOWN:
            onFingerDown(v, event.getX(), event.getY());
            v.onTouchEvent(event); // Fix for views, to handle clicks
            return true; // fix for scroll, when ACTION_UP & ACTION_CANCEL not come

        case MotionEvent.ACTION_MOVE:
            onFingerMove(event.getX(), event.getY());
            break;
        case MotionEvent.ACTION_UP:
        case MotionEvent.ACTION_CANCEL:
            onFingerUp();
            break;
    }
    return false;
}

0 个答案:

没有答案