Ответ 1
Есть ли способ получить процентное значение (0..100%) из android: layout_weight?
Конечно. Сделайте их до 100.
Для вашего "процентного значения" вы хотите, чтобы android:layout_height
отдельных элементов в LinearLayout
был 0px
.
Я пытаюсь разделить страницу на три части. Я хотел бы сделать это в процентных значениях, однако это не поддерживается 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
.
Когда вы используете андроид: layout_height = "fill_parent" для баров, вы не оставляете свободного места. (Так как они заполняют родительский элемент.) Поскольку все 3 заданы для заполнения, запрашиваемая высота фактически равна 3x родительской высоте, поэтому весы применяются к отрицательному оставшемуся пространству. Это объясняет странное поведение, которое вы видите, и почему настройка layout_height на 0px разрешает его.