Estoy tratando de centrar un botón en un diseño relativo, ¿es esto posible? He probado las funciones de gravedad y orientación, pero no hacen nada.
Estoy tratando de centrar un botón en un diseño relativo, ¿es esto posible? He probado las funciones de gravedad y orientación, pero no hacen nada.
Respuestas:
Tratar
android:layout_centerHorizontal="true"
Exactamente así, funciona para mí:
<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>
Puede usar CENTER_IN_PARENT para el diseño relativo.
Agregue android:layout_centerInParent="true"
al elemento que desea centrar en RelativeLayout
Arcadia, solo prueba el siguiente código. Hay varias formas de obtener el resultado que está buscando, esta es una de las formas más fáciles.
<?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>
Establecer la gravedad del RelativeLayout afectará a todos los objetos colocados dentro de él. En este caso, es solo el botón. Puede usar cualquiera de las configuraciones de gravedad aquí, por supuesto (por ejemplo, centro_horizontal, superior, derecha, etc.).
También puede usar este código a continuación:
<?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>
Resumido
Agregando:
android:layout_centerInParent="true"
solo funciona en RelativeLayout, si uno de los siguientes atributos también está configurado para la vista:
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
que alinea la vista secundaria a la vista primaria. El "centro" se basa en el eje de la alineación que ha elegido:
izquierda / derecha -> vertical
arriba / abajo -> horizontal
Establecer la gravedad del niño / contenido dentro de la vista:
android:gravity="center"
está centrando al niño dentro de la vista padre en cualquier caso, si no hay un conjunto de alineación. Opcional puedes elegir:
<!-- 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"
...
Entonces hay:
android:layout_gravity="center"
que está centrando la vista dentro de su padre
Y finalmente puede agregar el siguiente atributo a la vista de los padres:
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
Utilice el atributo android:centerInParent="true"
dentro de una vista, cuando desee centrar la vista en Diseño relativo.
<?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>
Es fácil, no lo alinees con nada
<Button
android:id="@+id/the_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Centered Button"/>
Es muy fácil Prueba el siguiente código,
<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>
debe haberlo alineado a izquierda o derecha de la vista principal
no use ninguno de estos cuando use android:centerInParent="true"
códigos: -
android:layout_alignParentLeft="true"
android:layout_alignParentLeft="true"
android:layout_alignRight=""
etc.