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

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).