Можете ли вы центрировать кнопку в RelativeLayout?

Я пытаюсь центрировать кнопку в относительной компоновке, возможно ли это? Я пробовал функции Gravity and Orientation, но они ничего не делают.

Ответ 1

Try

android:layout_centerHorizontal="true"

Точно так же это работает для меня:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="#ff0000">

    <Button
        android:id="@+id/btn_mybutton"
        android:layout_height="wrap_content"
        android:layout_width="124dip"
        android:layout_marginTop="5dip"
        android:layout_centerHorizontal="true"/>

</RelativeLayout>

Ответ 2

Вы можете использовать CENTER_IN_PARENT для относительной компоновки.

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

Ответ 3

Аркадия, попробуйте код ниже. Существует несколько способов получить результат, который вы ищете, это один из самых простых способов.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relative_layout"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:gravity="center">

    <Button
        android:id="@+id/the_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Centered Button"/>
</RelativeLayout>

Установка силы тяжести самого RelativeLayout будет влиять на все объекты, расположенные внутри нее. В этом случае это просто кнопка. Конечно, вы можете использовать любые настройки гравитации (например, center_horizontal, top, right и т.д.).

Вы также можете использовать этот код ниже:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relative_layout"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">

    <Button
        android:id="@+id/the_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Centered Button"
        android:layout_centerInParent="true"/>
</RelativeLayout>

Ответ 4

Обобщенная

Добавление:

android:layout_centerInParent="true"

работает только в RelativeLayout, если для представления также установлен один из следующих атрибутов:

android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"

который выравнивает дочерний вид с родительским представлением. "Центр" основан на выбранной вами оси выравнивания:

left/right → vertical

верх/низ → горизонтальный

Установка тяжести дочерних элементов/содержимого внутри представления:

android:gravity="center"

центрирует ребенка внутри родительского представления в любом случае, если нет набора выравнивания. Дополнительно вы можете выбрать:

<!-- Axis to Center -->
android:gravity="center_horizontal"
android:gravity="center_vertical"

<!-- Alignment to set-->
android:gravity="top"
android:gravity="bottom"
android:gravity="left"
android:gravity="right"
android:gravity="fill"
...

Тогда существует:

android:layout_gravity="center"

который центрирует представление внутри него parent

И наконец вы можете добавить в родительский вид следующий атрибут:

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

Ответ 5

Легко, не выравнивайте его ни с чем

<Button
        android:id="@+id/the_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="Centered Button"/>

Ответ 6

Используйте атрибут android:centerInParent="true" внутри представления, когда вы хотите центрировать вид в Relative layout.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="NWE"
        android:textSize="30dp"/>
</RelativeLayout>

Ответ 7

Для выравнивания по центру в одном из направлений используйте android: layout_centerHorizontal = "true" или android: layout_centerVertical = "true" в дочернем макете

Ответ 8

Удаление любого выравнивания, например, android: layout_alignParentStart = "true" и добавив центрInParent работал у меня. Если "align" остается, centerInParent не работает

Ответ 9

вы должны выровнять его влево или вправо от родительского представления

не использовать их при использовании кодов android:centerInParent="true": -

android:layout_alignParentLeft="true"

android:layout_alignParentLeft="true"

android:layout_alignRight=""

и т.д..

Ответ 10

Это очень просто. Попробуйте код ниже,

<RelativeLayout
    android:id="@+id/second_RL"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/first_RL"
    android:background="@android:color/holo_blue_bright"
    android:gravity="center">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</RelativeLayout>