undefined

Равномерно распределяем дочерние View-элементы

Курс "Программирование под Андроид"
2 уровень , 4 лекция
Доступна

Рассмотрим каким способом можно равномерно распределить все дочерние элементы View на любом устройстве под управлением Android

Дата загрузки:2017-06-16T13:10:00

Равномерно распределяем дочерние View-элементы - 1

Атрибут weight (вес) в линейном макете.

По этой ссылке можно поэкспериментировать с XML.

Подробнее о линейном макете на Stack Overflow: равномерное распределение дочерних элементов.

Свои ответы и вопросы можете оставлять в комментариях.

Комментарии (65)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Alex Snt. Уровень 1 Самара Россия
7 июня 2021
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/darker_gray" android:paddingLeft="16dp" android:paddingRight="16dp"> <TextView android:text="Tom" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:layout_weight="1" /> <TextView android:text="Tim" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:layout_weight="1"/> <TextView android:text="Todd" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:layout_weight="1"/> </LinearLayout>
Samurai Уровень 10 Казахстан
30 марта 2021

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/darker_gray"
    android:paddingLeft="16dp"
    android:paddingRight="16dp">

    <TextView
        android:text="VIP List"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="#000080"
		android:layout_weight="1"
        android:textSize="24sp" />

    <TextView
        android:text="Kunal"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="#008080"
        android:layout_weight="1"
        android:textSize="24sp" />

    <TextView
        android:text="Kagure"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:background="#00FF7F"
        android:textSize="24sp" />

    <TextView
        android:text="Lyla"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="#9ACD32"
        android:layout_weight="1"
        android:textSize="24sp" />

</LinearLayout>
Азамат Байтемиров Уровень 3 Алматы
30 марта 2021
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Tom" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:textSize="24sp" /> <TextView android:text="Tim" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:textSize="24sp" /> <TextView android:text="Todd" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:textSize="24sp" /> </LinearLayout>
28 февраля 2021
ну как я понял из статьи, что данная конструкция позволяет равномерно распологать текст по любой площади не зависимо от диаметра экрана
Руслан Асаев Уровень 14 Уфа Россия
19 января 2021
<TextView android:text="Todd" android:textStyle="bold|italic" android:textColor="#FF4081" android:gravity="center" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:layout_margin="5dp" android:textSize="24sp" /> </LinearLayout>
Хорс Уровень 41 Харьков
9 января 2021
Еще я читал что система подгружается если у нее много вьюшек с атрибутом "layout_weight" т.к. надо пробежаться по всем чайлдам, просуммировать их общий вес, а затем снова бежать по ним, раздавая каждому его долю на экране чтоб избежать этого перегруза можно юзать в корневой вьюшке атрибут "setWeightSum" - это сумма всех весов
🦔 Виктор Уровень 20 Москва Россия Expert
24 ноября 2020
1. Это устаревший макет, в самих доках гугла рекомендуют использовать ConstraintLayout. 2. У макета нужно ширину и высоту выставить согласно родителю. 3. Устанавливаем дочерним элементам нулевую ширину для горизонтального макета или нулевую высоту для вертикального макета. 4. Устанавливаем силу веса дочерним элементам:

android:layout_weight="1"
5. Всё получится!
MR Уровень 22 Харьков Украина
16 сентября 2020
Почему у меня в вертикале ничего не срабатывает. Уже все возможные варианты исписала, а вертикально друг от дружки. как стояли горизонтально, не хотят становиться.
Максим Головин Уровень 1 Днепр Украина
12 июля 2020
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00d9e6"> <TextView android:text="Tom" android:textStyle="bold" android:gravity="center" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="100sp" /> <TextView android:text="Tim" android:textStyle="bold" android:gravity="center" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="100sp" /> <TextView android:text="Todd" android:textStyle="bold" android:gravity="center" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="100sp" /> </LinearLayout>
Сергей Уровень 1
6 апреля 2020
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:paddingLeft="16dp" android:paddingRight="16dp" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#B3ACBC"> <TextView android:text="Tom" android:layout_width="70dp" android:layout_height="wrap_content" android:background="#FFDE03" android:layout_margin="5dp" android:textSize="24sp" /> <TextView android:text="Tim" android:layout_width="70dp" android:layout_height="wrap_content" android:background="#0336FF" android:layout_margin="5dp" android:textSize="24sp" /> <TextView android:text="Todd" android:layout_width="70dp" android:layout_height="wrap_content" android:background="#FF0266" android:layout_margin="5dp" android:textSize="24sp" /> </LinearLayout>