Question

J'essaie de diviser une page en trois parties. Je voudrais le faire en pourcentage de valeurs, mais cela n'est pas pris en charge par Android. Au lieu de cela, je dois utiliser android:layout_weight. Mais j'ai du mal à le comprendre et à bien faire les choses. Surtout comment la taille réelle est calculée. Existe-t-il un moyen d'obtenir une valeur de pourcentage (0..100%) android:layout_weight?

J'ai parcouru quelques cas (voir la capture d'écran ci-jointe) pour décrire les problèmes. Les champs colorés sont tous <LinearLayout> avec android:layout_height="fill_parent", parce que je veux que le plein écran soit divisé entre ceux-ci.

Cas 1

alt text

D'accord, simple. Tous <LinearLayout> obtient 33%.

Cas 2

alt text

UPS?! Le premier (jaune) <LinearLayout> disparaît complètement? Pourquoi?

Cas 3

alt text

Confus à nouveau. Le jaune <LinearLayout> est de retour. Cependant, les deux premiers <LinearLayout> Avec le poids plus lourd, devenir plus petit? Que se passe-t-il?

Cas 4

alt text

Je n'ai absolument aucune idée des mathématiques derrière tout cela.

Était-ce utile?

La solution

Existe-t-il un moyen d'obtenir une valeur de pourcentage (0..100%) sur Android: Layout_weight?

Bien sûr. Faites-les ajouter jusqu'à 100.

Pour votre "valeur de pourcentage", vous voulez le android:layout_height des articles individuels dans le LinearLayout être 0px.

Autres conseils

Lorsque vous utilisez Android: Layout_Height = "Fill_parent" pour les barres, vous ne laissez aucun espace disponible. (Puisqu'ils remplissent le parent.) Parce que les 3 sont réglés pour remplir, la hauteur demandée est en fait 3x la hauteur du parent, donc les poids sont appliqués à un espace restant négatif. Cela explique le comportement étrange que vous voyez, et pourquoi le réglage Layout_Height sur 0px le résout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top