Вопрос

Я пытаюсь разделить страницу в трех частях. Я хотел бы сделать это в процентных значениях, однако это не поддерживается Android. Вместо этого я должен использовать android:layout_weight. Отказ Но мне трудно понять это и понять правильно. Особенно тем, как исчисляется фактический размер. Есть ли способ получить процентное значение (0..100%) из android:layout_weight?

Я прошел несколько случаев (см. Прилагаемый скриншот), чтобы описать проблемы. Цветные поля все <LinearLayout> с android:layout_height="fill_parent", Потому что я хочу, чтобы весь экран был разделен между теми.

Дело 1

alt text

Хорошо, просто. Каждый <LinearLayout> Получает 33%.

Случай 2.

alt text

UPS?! Первый (желтый) <LinearLayout> исчезает полностью? Почему?

Случай 3.

alt text

Смущено снова. Желтый <LinearLayout> вернулся Однако два первых <LinearLayout> С более тяжелой весом становятся меньше? Что происходит?

Случай 4.

alt text

Я не имею никакого представления, что такое математика позади все это.

Это было полезно?

Решение

Есть ли способ получить процентное значение (0..100%) из Android: Layout_Weight?

Конечно. Заставить их добавлять до 100.

Для вашего «процентного значения» вы хотите android:layout_height отдельных предметов в пределах LinearLayout быть 0px.

Другие советы

Когда вы используете Android: Layout_Height = «Fille_Parent» для баров, вы не оставляете ни одно доступное пространство. (Поскольку они заполняют родитель.) Поскольку все 3 настроены на заполнение, запрошенная высота на самом деле является 3x родительской высотой, поэтому веса применяются к отрицательному оставшему пространству. Это объясняет странное поведение, которое вы видите, и зачем устанавливать Layout_Height на 0PX решить его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top