Reagieren Nativen FlatList Trennzeichen zwischen den Spalten
Ich habe eine FlatList mit mehreren Spalten:
<FlatList
numColumns={4}
ItemSeparatorComponent={this.renderSeparator}
...
</FlatList>
Sowie eine line-separator:
renderSeparator = () => (
<View
style={{
backgroundColor: 'red',
height: 0.5,
}}
/>
);
Aber die Trennzeichen erscheinen nur zwischen den Zeilen, nicht zwischen den Spalten (auch wenn ich hinzufügen width: 0.5
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie nur hinzufügen, wenn die else-Bedingung innerhalb renderItems und überprüfen Sie das index-Modul hinzufügen Trennzeichen.. ich benutze nur diese und alles funktioniert Super.
etwas wie :-
JS:
hoffe, dies wird Ihnen helfen.
Sorry ich habe auch nicht einen Weg finden, um eine Spalte hinzuzufügen separator mit Eigenschaften in der flatlist Komponente, so habe ich soeben die Ansicht außerhalb des text-Komponente in der render-Element wie diesem :
und das ist das Ergebnis :
Ich hoffe das kann dir helfen 🙂
Können Sie eine Ansicht hinzufügen wrapper um Ihren Text-Komponente und gelten borderRight Stil der View-Komponente, siehe Beispiel hier: https://snack.expo.io/HJx68bKvb, versuchen Sie, führen Sie in der Android-emulator, der auf der Expo, die Expo-iOS-emulator für einige Grund ist, zeigten nicht die Grenze korrekt, aber funktioniert auf meinem lokalen emulator.
Können Sie spielen, um mit Polsterung auf der View-Komponente und die Text-Komponente, um die gewünschte Grenze position.
Sah ich Ihre Expo. Es ist, als unten.
Ich nehme an, Sie möchten, wie unten beschrieben.
Um dies zu tun, Es ist nicht möglich, mit
ItemSeparatorComponent
nur.als Hazim Ali sagt, verwenden verschiedene Stil pro index.
Dies ist das vollständige Beispiel.
--
Soweit ich Lesen Sie die source code,
wenn numColumns > 2, es gibt keine itemseparator zwischen den Spalten.
Itemseparator ist nur zwischen Zeile und Zeile.
Hier ist Beispiel.
Wenn numColumns eingestellt ist 4, vier Elemente, die gruppiert sind, um eine Zelle.
Und eine itemSeparator ist zwischen den Zellen.
Können Sie eine Marge für jedes Element, und eine negative Marge für den container. Dies ist ein sehr verbreiteter trick, um CSS-flex-layout.
Klicken Sie hier, um zu sehen, meine Arbeit