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

Я хочу разместить макет в центре экрана.

Ответ 1

Шаг # 1: Оберните все, что вы хотите, центрированный на экране в полноэкранном режиме RelativeLayout.

Шаг # 2: Дайте этому дочернему виду (тот, который вы хотите по центру внутри RelativeLayout) атрибуту android:layout_centerInParent="true".

Ответ 2

Вы можете применить центрирование к любому представлению, включая макет, с помощью атрибута XML android: layout_gravity ". Вероятно, вы хотите присвоить ему значение" center ".

Здесь вы можете найти ссылку на возможные значения для этого параметра: http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#attr_android:layout_gravity

Ответ 3

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center">
    <ProgressBar
        android:id="@+id/ProgressBar01"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:layout_height="wrap_content"></ProgressBar>
    <TextView
        android:layout_below="@id/ProgressBar01"
        android:text="@string/please_wait_authenticating"
        android:id="@+id/txtText"
        android:paddingTop="30px"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></TextView>
</RelativeLayout>

Ответ 4

Мне удалось центрировать представление, используя

android:layout_centerHorizontal="true" 

и

android:layout_centerVertical="true" 

Params.

Ответ 5

Если вы хотите центрировать один вид, используйте этот. В этом случае TextView должен быть самым низким представлением в вашем XML, потому что layout_height соответствует match_parent.

<TextView 
    android:id="@+id/tv_to_be_centered"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:gravity="center"
    android:text="Some text"
/>

Ответ 6

Добавьте android: layout_centerInParent = "true" к элементу, который вы хотите центрировать в RelativeLayout

Ответ 7

Это будет работать для этого кода, иногда нужны оба свойства

android:layout_gravity="center"
android:layout_centerHorizontal="true"

Ответ 8

Обновленный ответ: Конфигурация ограничений

Похоже, что в Android теперь будет использоваться макет Constraint. Хотя это достаточно просто, чтобы центрировать представление с помощью RelativeLayout (как показали другие ответы), ConstraintLayout более мощный, чем RelativeLayout для более сложных макетов. Поэтому стоит узнать, как это сделать сейчас.

Чтобы центрировать представление, просто перетащите дескрипторы на все четыре стороны родителя.

введите описание изображения здесь