Android: пытаясь понять Android: Layout_weight
-
26-09-2019 - |
Вопрос
Я пытаюсь разделить страницу в трех частях. Я хотел бы сделать это в процентных значениях, однако это не поддерживается Android. Вместо этого я должен использовать android:layout_weight
. Отказ Но мне трудно понять это и понять правильно. Особенно тем, как исчисляется фактический размер. Есть ли способ получить процентное значение (0..100%) из android:layout_weight
?
Я прошел несколько случаев (см. Прилагаемый скриншот), чтобы описать проблемы. Цветные поля все <LinearLayout>
с android:layout_height="fill_parent"
, Потому что я хочу, чтобы весь экран был разделен между теми.
Дело 1
Хорошо, просто. Каждый <LinearLayout>
Получает 33%.
Случай 2.
UPS?! Первый (желтый) <LinearLayout>
исчезает полностью? Почему?
Случай 3.
Смущено снова. Желтый <LinearLayout>
вернулся Однако два первых <LinearLayout>
С более тяжелой весом становятся меньше? Что происходит?
Случай 4.
Я не имею никакого представления, что такое математика позади все это.
Решение
Есть ли способ получить процентное значение (0..100%) из Android: Layout_Weight?
Конечно. Заставить их добавлять до 100.
Для вашего «процентного значения» вы хотите android:layout_height
отдельных предметов в пределах LinearLayout
быть 0px
.
Другие советы
Когда вы используете Android: Layout_Height = «Fille_Parent» для баров, вы не оставляете ни одно доступное пространство. (Поскольку они заполняют родитель.) Поскольку все 3 настроены на заполнение, запрошенная высота на самом деле является 3x родительской высотой, поэтому веса применяются к отрицательному оставшему пространству. Это объясняет странное поведение, которое вы видите, и зачем устанавливать Layout_Height на 0PX решить его.