Ich verwende React Native und habe Probleme, die vertikale Zentrierung von Elementen beizubehalten, sobald ich eine ScrollView einführe. Zur Demonstration habe ich 3 Apps mit React Native Playground erstellt. Alle Beispiele haben 2 Seiten und können durch Tippen auf die blaue Schaltfläche umgeschaltet werden.
Beispiel 1:
Dieses erste Beispiel zeigt Blöcke, die vertikal auf Seite 2 zentriert sind. Dies geschieht, weil auf den Container die folgenden Stile angewendet werden:
flex: 1,
flexDirection: 'column',
justifyContent: 'center',
https://rnplay.org/apps/lb5wSQ
Sobald Sie jedoch zu Seite 2 wechseln, tritt ein Problem auf, da der gesamte Inhalt der Seite nicht passt. Wir benötigen daher ein ScrollView
.
Beispiel 2
In diesem Beispiel verpacke ich alles in eine ScrollView. Dadurch kann Seite 2 scrollen, aber jetzt habe ich die vertikale Zentrierung von Seite 1 verloren.
https://rnplay.org/apps/DCgOgA
Beispiel 3
Um zu versuchen, die vertikale Zentrierung von Seite 1 wiederherzustellen, wende ich mich flex: 1
an contentContainerStyle
ScrollView an. Dadurch wird die vertikale Zentrierung auf Seite 1 behoben, aber ich kann auf Seite 2 nicht mehr ganz nach unten scrollen.
https://rnplay.org/apps/LSgbog
Wie kann ich das beheben, damit die Elemente auf Seite 1 vertikal zentriert werden und ScrollView dennoch auf Seite 2 ganz nach unten scrollen kann?