У меня есть ViewPager
с 3 Fragments
содержащимися в нем. Один из Fragments
содержит другой ViewPager
. что делает его каскадным ViewPager
внутри ViewPager
.
Мне нужно запретить внутреннему ViewPager
пролистывать/перелистывать страницы, но разрешить ему передавать жесты прокрутки содержащемуся RecyclerView
.
Да, я хорошо знаю, что ViewPager
внутри ViewPager
- не лучшая идея, но в этом случае пейджер не должен пролистывать, а передавать жесты дочерним представлениям. Так что не должно быть проблемы с двумя механизмами смахивания в одних и тех же направлениях.
Я попытался использовать следующий код NonSwipeableViewPager
для внутреннего пейджера:
public class NonSwipeableViewPager extends ViewPager {
public NonSwipeableViewPager(Context context) {
super(context);
}
public NonSwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
// Never allow swiping to switch between pages
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// Never allow swiping to switch between pages
return false;
}
}
И это действительно останавливает ViewPager
от перелистывания/перелистывания, но также предотвращает передачу сенсорных событий вниз на RecyclerView
.
Как я могу изменить этот ViewPager
, чтобы использовать жест прокрутки/листания, но передать жест прокрутки на RecyclerView
?