на iOS все работает отлично, но на Android такое ощущение, что FlatList агрессивно поглощает все события касания, даже горизонтальные, и не позволяет им всплывать в родительский PagerView. вертикальная прокрутка работает нормально, и если я проведу пальцем по заголовку или за пределы списка, вкладка переключится правильно.
вот моя текущая настройка (упрощенная):
1. Корневой навигатор (верхние вкладки)
Код: Выделить всё
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
Кто-нибудь сталкивался с этим конкретным конфликтом со списками и вложенными навигаторами на Android? Есть ли обходной путь, позволяющий заставить список передавать горизонтальные жесты вверх?
Подробнее здесь: https://stackoverflow.com/questions/798 ... d-flatlist
Мобильная версия