Reagieren nativen flexbox - how zu tun Prozentsätze || Spalten || responsive || grid etc
Nach der Arbeit mit react native auf iOS für die letzten paar Wochen, scheine ich über einige Unzulänglichkeiten der flex styling... vor Allem, wenn es um "responsive" Verhalten.
Zum Beispiel, können sagen, Sie möchten eine Ansicht erstellen, enthält Karten (die Metadaten für diese Karten kommt von einer API). Sie möchten die Karten werden 50% der view Breite abzüglich der margin & padding und wickeln nach jedem 2.
Den aktuellen Umsetzung habe ich für diese Ansicht teilt das zurückgegebene array in Zeilen, die mit 2 items. Die Liste der container hat flex: 1, flexDirection: 'column
, die Zeilen haben flex: 1
und dann jede Karte hat flex: 1
. Das Endergebnis ist jede Zeile hat 2 Spalten, die gleichmäßig dauern, bis die Hälfte der view Breite.
Wie es scheint, gibt es keinen einfachen Weg, dies zu tun Reagieren Native Stile, ohne Verwendung von javascript zu tun, irgendeine Art von pre-processing auf die Daten, so dass es aus dem Stil richtig. Hat jemand irgendwelche Vorschläge?
- Haben Sie versucht, die "flexWrap" ?
- Ja, aber flexWrap funktioniert nur, wenn es zu einem überlauf von Kindern, die nur ausgelöst werden, wenn es eine width-Eigenschaft angegeben wird, auf die Kinder. @niceass
- Und was stimmt nicht mit der Angabe von 50% Breite? Nicht, dass das, was Sie sowieso wollen?
- Es gibt kein Konzept von % in Reagieren nativen @niceass
- War an dieser Frage interessiert, und für das Leben von mir nicht bekommen konnte diese Arbeit mit flexbox allein. Für uns, wir haben um die Abmessungen, die zum berechnen der Fensterbreite und kann dann leicht zu verwenden, 50% Breite, etc. Ich habe eine Zusammenfassung mit einem Beispiel arbeiten, was Sie wollen, aber zugegeben, es ist viel Ausführlicher, als ich es gern haben würde! gist.github.com/dabit3/72138f22120f835dfb92 . Dies ist, wie es aussieht: i.imgur.com/z5HD3GR.png
- Interessant. Ich dachte, dies könnte das sein, was es wieder zu sich kam. Wir denken an die Schaffung eines flexbox-grid-Komponente, die ähnlich wie die Lösung, wenn es wirklich keine reinen Stile Lösung.
- Hier ist auf RNPlay (die wurde nicht den gesamten Tag, also Es kann oder kann nicht geladen ) rnplay.org/apps/5vqO7g
Du musst angemeldet sein, um einen Kommentar abzugeben.
Reagieren Nativen bereits hat Prozentsatz-Unterstützung:
Kann es einen besseren Weg, dies zu erreichen mit flexbox, aber ich in der Regel definieren "Prozentsatz" Helfer
vw
undvh
für die viewport-Breite und die viewport-Höhe, benannt nach dem CSS viewport-Größe Maßeinheiten:Fließen Elemente in einem raster, Sie können dann berechnen Sie eine angemessene Größe für Gegenstände, die Buchhaltung für die Margen-und viewport-Größe:
Sollten Sie nur verwenden Sie dieses Verfahren, wenn Sie haben eine bekannte und begrenzte Anzahl von Elementen für beliebige-Karten verwenden, sollten Sie
ListView
aus Gründen der performance und teilen Sie Ihre Daten-set, die Zeilen manuell.Können Sie justifyContent: 'Raum-zwischen'
screenshot