Android Studio, как сделать так чтобы 2 слоя занимали по 50% экрана?

Изучаю android studio, встретился с такой проблемой, у меня есть экран на котором расположено 2 слоя LinearLayout, я хочу сделать так чтобы эти 2 слоя делили между собой пространство экрана 50 на 50, но не могу понять как это делается. Может быть кто-то может мне в этом подсказать? В интернете увы толком не смог найти никакой информации, пытался прописывать что-то в самом activity_main.xml тоже безуспешно..


Ответы (2 шт):

Автор решения: ЮрийСПб

Используйте вес (атрибут android:weight). Примерно так:

 <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical">

     <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:weight="1" />

     <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:weight="1" />

  </LinearLayout>
→ Ссылка
Автор решения: Vlad Orlinskas

Попробуйте использовать ConstraintLayout. Это улучшеный RelativeLayout, он функционален и быстр.

implementation "androidx.constraintlayout:constraintlayout:2.0.4"
  1. Оберните ваши контейнеры в <androidx.constraintlayout.widget.ConstraintLayout
  2. Откройте вкладку Design или Split вашей верстки.
  3. Выделите контейнеры которые вы хотите скомпоновать.
  4. Поэкспериментируйте с кнопка Align и Pack. Они позволяют групировать элементы различными образами.
  5. Так же испытайте Guideline https://developer.android.com/reference/androidx/constraintlayout/widget/Guideline
  6. Как сказал @pavlofff для оптимизации не рекомендуется использовать вложенные контейнеры.

Отличный пример: https://stackoverflow.com/questions/46639504/android-studio-layout-editor-constraintlayout-pack-vs-chain

Пример xml:

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/first"
        android:layout_width="204dp"
        android:layout_height="50dp"
        android:background="@android:color/holo_green_dark"
        app:layout_constraintEnd_toStartOf="@+id/second"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent">

    </LinearLayout>

    <LinearLayout
        android:id="@+id/second"
        android:layout_width="204dp"
        android:layout_height="50dp"
        android:background="@android:color/holo_red_dark"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/first">

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
→ Ссылка