Android: Versuch, Android zu verstehen: layout_gewicht
-
26-09-2019 - |
Frage
Ich versuche, eine Seite in drei Teilen zu teilen. Ich würde es gerne in Prozentwerten tun, das wird jedoch nicht von Android unterstützt. Stattdessen muss ich verwenden android:layout_weight
. Aber es fällt mir schwer, es zu verstehen und richtig zu machen. Besonders wie die tatsächliche Größe berechnet wird. Gibt es eine Möglichkeit, einen prozentualen Wert (0..100%) aus zu erhalten android:layout_weight
?
Ich habe ein paar Fälle durchlaufen (siehe beigefügte Screenshot), um die Probleme zu beschreiben. Die farbigen Felder sind alle <LinearLayout>
mit android:layout_height="fill_parent"
, weil ich möchte, dass der Vollbild zwischen diesen aufgeteilt wird.
Fall 1
Okay, einfach. Jeder <LinearLayout>
bekommt 33%.
Fall 2
UPS?! Der erste (gelb) <LinearLayout>
Verschwinden vollständig? Wieso den?
Fall 3
Wieder verwirrt. Das Gelbe <LinearLayout>
ist zurück. Die beiden jedoch zuerst <LinearLayout>
mit dem schwereren Gewicht kleiner werden? Was ist los?
Fall 4
Ich habe absolut keine Ahnung, was die Mathematik hinter all dem ist.
Lösung
Gibt es eine Möglichkeit, einen prozentualen Wert (0..100%) aus Android zu erhalten: layout_gewicht?
Sicher. Lassen Sie sie bis 100 addieren.
Für Ihren "prozentualen Wert" möchten Sie das android:layout_height
der einzelnen Elemente innerhalb der LinearLayout
sein 0px
.
Andere Tipps
Wenn Sie Android: layout_Height = "fill_parent" für die Balken verwenden, lassen Sie keinen verfügbaren Platz. (Da sie den Elternteil füllen.) Da alle 3 auf Füllen eingestellt sind, beträgt die angeforderte Höhe tatsächlich 3x der übergeordneten Höhe, sodass die Gewichte auf einen negativen verbleibenden Raum angewendet werden. Dies erklärt das seltsame Verhalten, das Sie sehen und warum das Einstellen von Layout_Height auf 0PX es löst.