有这个https://github.com/03uk/RippleDrawable 在非L设备上创建波纹效果的美妙实现。
正如您所看到的那样,Drawable
实现了OnTouchListener
。
问题是Drawable拦截了所有触摸事件,因此无法在ListViews和类似的中使用。
如何避免它?
,特别是在这里:
@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;
}