Use setOnTouchListener and setOnClickListener simultaneously
in onTouch:
public boolean onTouch(View v, MotionEvent event) {
ViewParent parent = v.getParent();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
disallowTouch(parent, true);
downX = event.getX();
downY = event.getY();
return false; // allow other events like Click to be processed
}
}
private void disallowTouch(ViewParent parent, boolean isDisallow) {
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(isDisallow);
}
}