Задать вопрос
Olaf-06
@Olaf-06
Студент

Как сделать так, чтоб при повороте экрана View элементы не уходили за его пределы?

Использую ConstraintLayout и каждую вьюху привязываю к вышестоящей вьюхе. При повороте экрана большая часть кнопок улетает вниз. Можно ли как-то это исправить, не делая альбомный экран?

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".ui.MainMenuFragment">

    <Button
        android:id="@+id/btnToCreatePlayRoom"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="144dp"
        android:text="Создать комнату"
        android:textSize="6pt"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btnToChoosePlayRoom"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:text="Найти комнату"
        android:textSize="6pt"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.495"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnToCreatePlayRoom" />

    <Button
        android:id="@+id/btnToInstructions"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:text="Инструкция для новичков"
        android:textSize="6pt"
        android:layout_marginTop="12dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnToChoosePlayRoom" />

    <Button
        android:id="@+id/btnToConfig"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:text="Настройки"
        android:textSize="6pt"
        android:layout_marginTop="12dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnToInstructions" />

    <Button
        android:id="@+id/btnToAboutApp"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:text="О приложении"
        android:textSize="6pt"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.504"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnToConfig"
        app:layout_constraintVertical_bias="0" />

    <Button
        android:id="@+id/btnSignOut"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:text="Выйти из аккаунта"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.95"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnToAboutApp"
        app:layout_constraintVertical_bias="1.0" />


</androidx.constraintlayout.widget.ConstraintLayout>


637cb579dd00a786872588.jpeg
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Во-первых, зачем тебе тут Constraint? Ну да ладно.
Во-вторых, как запросил, так оно и рисует. Чтобы запросить по-другому, используй разные лэйауты для разных ориентаций. layout-land.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы