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

alt text

Okay, einfach. Jeder <LinearLayout> bekommt 33%.

Fall 2

alt text

UPS?! Der erste (gelb) <LinearLayout> Verschwinden vollständig? Wieso den?

Fall 3

alt text

Wieder verwirrt. Das Gelbe <LinearLayout> ist zurück. Die beiden jedoch zuerst <LinearLayout> mit dem schwereren Gewicht kleiner werden? Was ist los?

Fall 4

alt text

Ich habe absolut keine Ahnung, was die Mathematik hinter all dem ist.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top