AOSP offers a delegate mechanism to modify the touchable area of Views, but this may not always behave as expected. A common use-case is having a View shown within a constrained area, but wanted to react to scrolling gestures from anywhere on the screen – e.g., imagine a RecyclerView on a landscape tablet that design has specified should never show wider than X pixels. The simple workaround is pass the TouchEvent directly, like so

// in parent
public boolean onTouchEvent(MotionEvent event) {
  return true;

`OnTouchEvent` is only called if children have not consumed the event, so it’s fairly safe to use. Since the original child will consume the event (and `onTouchEvent` will not be called from the parent), the event will not be duplicated (despite how it seems on first glance).