Android: Wischgesten von MaterialTopTabs werden durch verschachtelte FlatList blockiertAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Android: Wischgesten von MaterialTopTabs werden durch verschachtelte FlatList blockiert

Post by Anonymous »

Ich arbeite an einer React Native-Anwendung mit einer bestimmten Navigationsstruktur, die einen Chat-Bildschirm umfasst, der in mehreren Navigatoren eingebettet ist. Der Stamm ist ein MaterialTopTabNavigator, der einen BottomTabNavigator enthält, und innerhalb dieser unteren Registerkarte befindet sich der eigentliche Bildschirm mit FlatList für Nachrichten. Das Problem, mit dem ich konfrontiert bin, ist spezifisch für Android: Horizontale Wischgesten zum Wechseln zwischen den oberen Tabs schlagen vollständig fehl, wenn die Geste über dem FlatList-Bereich beginnt.
Unter iOS funktioniert alles perfekt, aber unter Android fühlt es sich an, als ob die FlatList alle Berührungsereignisse, auch horizontale, aggressiv verbraucht und sie nicht in die übergeordnete PagerView hochsprudeln lässt. Vertikales Scrollen funktioniert einwandfrei, und wenn ich über die Kopfzeile oder außerhalb der Liste wische, wechselt die Registerkarte korrekt.
Hier ist mein aktuelles Setup (vereinfacht):
1. Root-Navigator (Top-Tabs)

Code: Select all

const TopTab = createMaterialTopTabNavigator();

export const DetailTaskNavigator = () => {
return (
// swipeEnabled is definitely true


{/* the issue is inside this tab which contains the bottom nav */}



);
};
2. Verschachtelter Navigator (untere Tabs)
Ich vermute, dass die zusätzliche Verschachtelung Teil des Problems sein könnte.

Code: Select all

const BottomTab = createBottomTabNavigator();

export const ChatTabNavigator = () => {
return (


{/* other screens... */}

);
};
3. Der Chat-Bildschirm

Code: Select all

export const MessageSection = () => {
return (







);
};
Was ich bisher versucht habe, um dies zu debuggen:
  • Umschalten zwischen React-Native FlatList und React-native-gesture-handler FlatList. Keiner von beiden hat das Wischen behoben.
  • Es wurde sichergestellt, dass „flex: 1“ auf jedem einzelnen übergeordneten Container vorhanden ist, um Probleme mit der Höhe von Null zu vermeiden.
  • Android:windowSoftInputMode="adjustResize" im Manifest überprüft.
  • Ich habe versucht, SimultaneousHandlers zu verwenden, aber es ist schwierig, da die PagerView in der React-Navigation-Bibliothek versteckt ist.
ENV:
react-native: 0.80.2
react-navigation/material-top-tabs: 7.4.9
pager-view: 6.9.1
Hat jemand diesen speziellen Konflikt mit Listen und verschachtelten Navigatoren auf Android erlebt? Gibt es eine Problemumgehung, um die Liste zu zwingen, horizontale Gesten nach oben weiterzugeben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post