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>
Попробуйте использовать ConstraintLayout. Это улучшеный RelativeLayout, он функционален и быстр.
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
- Оберните ваши контейнеры в <androidx.constraintlayout.widget.ConstraintLayout
- Откройте вкладку Design или Split вашей верстки.
- Выделите контейнеры которые вы хотите скомпоновать.
- Поэкспериментируйте с кнопка Align и Pack. Они позволяют групировать элементы различными образами.
- Так же испытайте Guideline https://developer.android.com/reference/androidx/constraintlayout/widget/Guideline
- Как сказал @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>