Что такое Android: layout_weight? - PullRequest
0 голосов
/ 07 ноября 2011

Что происходит, когда я устанавливаю вес = 1 для одного макета и вес 2 для другого макета. Если у меня линейный макет

Ответы [ 3 ]

6 голосов
/ 07 ноября 2011

Вес используется, чтобы распределить оставшееся пустое пространство или убрать пространство, когда общая сумма больше чем LinearLayout.

Указывает, сколько дополнительного пространства в LinearLayout будет выделено для представления, связанного сс этими LayoutParams.Укажите 0, если вид не должен быть растянут.В противном случае дополнительные пиксели будут пропорционально распределены среди всех видов, вес которых больше 0.

. Подробнее об этой информации нажмите. Здесь , Ссылка1

Проблема веса макета

Если мы делим родителя на равные части, мы просто устанавливаемдетей layout_weights all to 1. Но если мы хотим разделить это неравно, мы можем сделать это несколькими способами.Мы можем использовать десятичные дробные значения, которые составляют 1, или мы можем использовать целочисленные значения:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent">
   <LinearLayout android:background="#FF0000"
    android:layout_height="fill_parent" android:layout_width="fill_parent"
    android:layout_weight="0.66667" />
  <LinearLayout android:background="#00FF00"
    android:layout_height="fill_parent" android:layout_width="fill_parent"
    android:layout_weight="0.33333" />
</LinearLayout>

Или

 <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent">
   <LinearLayout android:background="#FF0000"
      android:layout_height="fill_parent" android:layout_width="fill_parent"
      android:layout_weight="2" />
    <LinearLayout android:background="#00FF00"
       android:layout_height="fill_parent" android:layout_width="fill_parent"
       android:layout_weight="1" />
  </LinearLayout>

Оба из них будутдать тот же результат.

1 голос
/ 07 ноября 2011

Если есть дополнительное пространство, первый макет расширится и займет 1/3, а второй - 2/3Проверьте официальный документ .

0 голосов
/ 07 ноября 2011

, это зависит от того, что вы им задаете layout_width / layout_height.

два макета рядом друг с другом (в предположении горизонтальной ориентации) с layout_weight = 1 и layout_weight = 2 соответственно будут занимать 1/3 и 2/3 ширины, ЕСЛИ вы установите для layout_width значение 0dip.однако, если вы установите layout_width = "fill_parent", произойдет обратное: представление с layout_weight = 1 будет занимать 2/3 ширины, в то время как представление с layout_weight = 2 будет занимать только 1 / 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...