2010-09-20 23 views

Respuesta

298

Trate

android:layout_centerHorizontal="true" 

exactamente como este, a mí me funciona:

<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> 
+3

Esto no funcionó. – Arcadia

+23

Esto funcionó para mí. Gracias. –

+1

Funcionó para mí también ,,, ¿por qué no lo marcan como respuesta ... – Naruto

86

Usted puede utilizar CENTER_IN_PARENT para la disposición relativa.

Añadir android:layout_centerInParent="true" al elemento que desea centrar en el RelativeLayout

+2

¿Dónde lo pongo? – Arcadia

+2

@josnidhin: esta es la respuesta correcta. – Ashwin

+0

Correcto;) Gracias :) – androniennn

34

Arcadia, utilice la herramienta de código de abajo. Hay varias maneras 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> 

El ajuste de la gravedad relativa de Relative afectará a todos los objetos colocados en su interior. En este caso, es solo el botón. Puedes usar cualquiera de las configuraciones de gravedad aquí, por supuesto (por ejemplo, center_horizontal, arriba, derecha, y así sucesivamente).

También puede utilizar este código de abajo:

<?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> 
+1

Gracias. Sin embargo, si tuviera varios botones y solo quisiera uno centrado, ¿cómo lo haría? El primer código centraría todo dentro de la versión relativa principal. Además, ¿cómo podría centrar el botón en la parte superior de su fila? – Arcadia

+0

Simplemente use el segundo ejemplo, y solo agregue centerInParent al botón que desee centrado. También puede usar centerHorizontal y layout_alignParentTop para alinearlo en la parte superior y centrarlo horizontalmente. ¿Qué es exactamente lo que estás tratando de lograr, podría dar un mejor ejemplo. – kcoppock

+0

Apenas comienzo mis estudios de desarrollo de Android y trato de comprender completamente cómo manipular cosas para hacer lo que quiero. Básicamente, quiero mantenerme alejado de alinear elementos con píxeles porque la imagen podría verse muy diferente en un tipo de pantalla/resolución diferente. Sin embargo, cuando usas el comando de gravedad, todo sigue. Intenté desactivar la gravedad de un botón utilizando ignoreGravity y no funcionó. Esto es muy complicado. – Arcadia

5

Su fácil, no te Alinear 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"/>

1

Extracción de cualquier alineamiento como Android: layout_alignParentStart = "true "y agregando centerInParent funcionó para mí. Si el "alinear" se queda en el centerInParent no funciona

2

Para central centran en una de la utilización dirección androide: layout_centerHorizontal = "true" o androide: layout_centerVertical = "true" en el diseño infantil

4

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> 
+0

Se recomienda utilizar 'match_parent' en lugar de' fill_parent'. 'fill_parent' está en desuso a partir de la API 8 – RediOne1

0

debe haber alineado a la izquierda oa la derecha de vista padre

no utilice cualquiera de estos cuando se utiliza android:centerInParent="true" códigos: -

android:layout_alignParentLeft="true"

android:layout_alignParentLeft="true"

android:layout_alignRight=""

etc.

13

Resumido

Adición:

android:layout_centerInParent="true" 

solo funciona en RelativeLayout, si uno de los siguientes atributos también se establece 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" 

cuales alignes la vista del niño a la vista principal El "centro" se basa en el eje de la alineación que ha elegido:

izquierda/derecha -> vertical,

superior/inferior -> horizontal

Ajuste de la gravedad del niño/contenido dentro de la vista:

android:gravity="center" 

está centrando al niño dentro de la vista principal en cualquier caso, si no hay un conjunto de alineación. Opcional se puede 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" 
... 

Luego está:

android:layout_gravity="center" 

que está centrando la vista en sí dentro es padre

Y al fin se puede añadir el siguiente atributo a los padres ven:

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

Es realmente fácil. Pruebe 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> 
+1

Las respuestas con solo el código no son bienvenidas aquí. Intenta publicar más detalles sobre por qué funcionará la respuesta anterior. :) – Vivz

+0

Gracias por la guía. Soy nuevo aquí. –

Cuestiones relacionadas