Ist es möglich, Gewichte in Jetpack Compose zu machen? Zum Beispiel möchte ich es so einrichten, dass ein Element als 1/3 eines Layouts gewichtet wird und das andere die restlichen 2/3 einnimmt.
Im XML/ViewGroup-Stil können Sie dies mit LinearLayouts und ConstraintLayouts erreichen. Zu meiner Bestürzung scheint es jedoch nicht möglich zu sein, Jetpack Compose zu verwenden.
Ich weiß, dass Sie Tabellen verwenden können, um zu bekommen gleichmäßig verteilte Sachen, aber ich will eine uneben Verteilung.
Nachdem Sie hier eine Frage gestellt haben und eine akzeptable Antwort erhalten, sollten Sie die Antwort „akzeptieren“, indem Sie auf das Häkchen daneben klicken. Das bringt Punkte für Sie und die Person, die Ihre Frage beantwortet hat. Hier erfahren Sie mehr über das Akzeptieren von Antworten: Wie akzeptiere ich eine Antwort?, Warum sollten wir Antworten akzeptieren?Was soll ich tun, wenn jemand meine Frage beantwortet?.
Für die Fanatiker wie mich, die verschachtelte Layouts wirklich vermeiden wollen, ist compose davon nicht betroffen!
– ZooMagic
8. September um 9:58
Da “0.1.0-dev09”-Modifikatoren auf eine Schnittstelle verschoben werden, können Sie verwenden
Modifikator.weight(float, boolean)
um den vertikalen/horizontalen Raum zu teilen, der nach dem Messen ungewichteter untergeordneter Elemente verbleibt, und ihn entsprechend dieser Gewichtung zu verteilen
Der Standardwert ist wahr, Sie müssen ihn also nicht angeben
– MSpeed
14. Oktober 2021 um 14:39 Uhr
Woher weiß ich, wie hoch das Gewicht meiner Ansichten sein sollte? Nehmen wir an, ich habe eine Spalte mit drei Objekten. Das zweite nimmt den größten Teil des Layouts ein, so dass das erste und das letzte Objekt die Standardhöhe haben und das zweite den Platz zwischen dem ersten und dem letzten ausfüllen soll. In XML könnten Sie diese Objekte einfügen LinearLayout und setze das Gewicht der zweiten Ansicht auf 1. Wie erreiche ich das in Jetpack Compose? Vielen Dank
– Markus Delphi
18. August um 22:59 Uhr
Die Version „0.1.0-dev04“ von Jetpack Compose enthält Änderungen und FlexRow ist veraltet. Folgende Lösung kann ich vorschlagen:
Das LayoutFlexibel(flex = _f) hilft uns, das Problem zu lösen, und Modifier kann auf jeden Container angewendet werden.
Verwenden Sie Modifier.weight(float) für die Objekte in einem Container. Sie können auch Constraintlayout oder Low Level verwenden Layout Zusammensetzbar. Sehen Sie sich das offizielle Compose-Layout-Codelab in Compose Pathways an, um weitere Informationen dazu zu erhalten
Compose wandelt den Zustand in UI-Elemente um.
Zusammensetzung von Elementen Anordnung von Elementen Zeichnung von Elementen
Verwenden Sie auf ähnliche Weise Row, um Elemente horizontal auf dem Bildschirm zu platzieren. Sowohl Column als auch Row unterstützen die Konfiguration der Ausrichtung der enthaltenen Elemente.
Verwenden Sie Box, um Elemente übereinander zu platzieren. Box unterstützt auch die Konfiguration einer bestimmten Ausrichtung der darin enthaltenen Elemente.
Nachdem Sie hier eine Frage gestellt haben und eine akzeptable Antwort erhalten, sollten Sie die Antwort „akzeptieren“, indem Sie auf das Häkchen daneben klicken. Das bringt Punkte für Sie und die Person, die Ihre Frage beantwortet hat. Hier erfahren Sie mehr über das Akzeptieren von Antworten: Wie akzeptiere ich eine Antwort?, Warum sollten wir Antworten akzeptieren?Was soll ich tun, wenn jemand meine Frage beantwortet?.
– MarianD
3. September um 18:48 Uhr