Я хочу разместить макет в центре экрана.
Как центрировать представление внутри макета 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
для более сложных макетов. Поэтому стоит узнать, как это сделать сейчас.
Чтобы центрировать представление, просто перетащите дескрипторы на все четыре стороны родителя.