На iOS все работает отлично, но на Android создается впечатление, что FlatList агрессивно поглощает все события касания, даже горизонтальные, и не позволяет им всплывать в родительский PagerView. вертикальная прокрутка работает нормально, и если я проведу пальцем по заголовку или за пределы списка, вкладка переключается правильно.
Вот моя текущая настройка (упрощенная):
- Корневой навигатор (верхние вкладки)
Код: Выделить всё
const TopTab = createMaterialTopTabNavigator(); export const DetailTaskNavigator = () => { return ( // swipeEnabled is definitely true {/* the issue is inside this tab which contains the bottom nav */} ); }; - Вложенный навигатор (нижние вкладки)
Я подозреваю, что дополнительная вложенность может быть частью проблемы.Код: Выделить всё
const BottomTab = createBottomTabNavigator(); export const ChatTabNavigator = () => { return ( {/* other screens... */} ); }; - Экран чата
Код: Выделить всё
export const MessageSection = () => { return ( ); };
- переключение между реагирующим FlatList и реагирующим нативным-жест-обработчиком FlatList. ни один из них не исправил пролистывание.
- гарантировалось, что flex: 1 присутствует в каждом родительском контейнере, чтобы избежать проблем с нулевой высотой.
- проверено android:windowSoftInputMode="adjustResize" в манифесте.
- пробовал использовать SimulficientHandlers, но это сложно, поскольку PagerView скрыт внутри реакции-навигации библиотека.
- react-native: 0.80.2
- react-navigation/material-top-tabs: 7.4.9
- pager-view: 6.9.1
Подробнее здесь: https://stackoverflow.com/questions/798 ... on-android
Мобильная версия