I built a solution combining a horizontal viewpager (parent) with vertical views (each child). I tried the following methods on a vertical viewer:
public boolean onInterceptTouchEvent(MotionEvent ev)
public boolean onTouchEvent(MotionEvent ev)
When the user fires these events for each child, they pass it to the parent. Then, if the event is vertical, the child process processes it; otherwise, if the event is horizontal, the parent process processes it.
Take a look at my DoubleViewPager library, where I implemented this strategy.
source share