Как сделать всё по центру?

Для достижения центровки различных элементов в приложении Android можно использовать разные подходы в зависимости от типа элемента и его расположения.

Для центровки внутри контейнера или на экране можно использовать различные контейнеры и параметры их размещения.

1. Для центрирования View внутри LinearLayout, можно использовать атрибуты android:gravity и android:layout_gravity. Вот пример:

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Текст по центру" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Кнопка по центру" />

</LinearLayout>

В этом примере настройка гравитации android:gravity="center" делает все элементы внутри LinearLayout по центру по горизонтали и вертикали.

2. Для центрирования элемента внутри RelativeLayout, можно использовать атрибуты android:layout_centerHorizontal="true" и android:layout_centerVertical="true". Пример:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Текст по центру" />

    <Button
        android:layout_below="@id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Кнопка по центру" />

</RelativeLayout>

В этом примере атрибуты android:layout_centerHorizontal="true" и android:layout_centerVertical="true" центрируют TextView по горизонтали и вертикали внутри RelativeLayout.

3. Центрирование элементов внутри ConstraintLayout производится с использованием вложенных ограничений или цепочек. Пример:

<ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:text="Текст по центру" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/textView"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:text="Кнопка по центру" />

</ConstraintLayout>

В этом примере элемент TextView использует ограничения, которые привязывают его к центру экрана (вертикальные и горизонтальные) с помощью атрибутов app:layout_constraintTop_toTopOf="parent", app:layout_constraintBottom_toBottomOf="parent", app:layout_constraintStart_toStartOf="parent" и app:layout_constraintEnd_toEndOf="parent".

Это лишь несколько возможных способов достичь центровки элементов в Android. В зависимости от сложности разметки и требований к макету могут использоваться и другие методы.