una studio que linearlayout imagen elementos elemento ejemplos derecha como centrar boton amontonados alinear ala xml android layout alignment

xml - studio - que es relativelayout en android



Android XML: cómo alinear los elementos a la izquierda, al centro y a la extrema derecha (3)

Tengo este código XML que genera un botón, una vista de texto y otro botón. ¿Cómo hago para que el botón aparezca en el extremo izquierdo, la vista de texto en el centro y el último botón en el extremo derecho?

<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cancel"> </Button> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Place"> </TextView> <Button android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save"> </Button> </LinearLayout>


Necesita usar la propiedad de peso. Piense en ello como dejar que Android sepa el porcentaje de ancho que le debe dar a cada artículo.

necesita establecer el ancho en 0 para todos los 3 elementos y agregar la propiedad de peso

<Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cancel" android:layout_width="0dip" android:layout_weight="2" > </Button> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Place" android:layout_width="0dip" android:layout_weight="1" > </TextView> <Button android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save" android:layout_width="0dip" android:layout_weight="2" > </Button>

Juega con el valor de peso y entenderás cómo funciona :)

Después de esto, puede usar la propiedad de gravedad para mover el texto al centro / izquierda o derecha.


recomendaría usar RelativeLayout, hace las cosas mucho más fáciles.

al usar RelativeLayout, usted podría establecer la vista de texto en el centro horizontal en el padre o en el centro del padre

Después de hacerlo, podrá adjuntar esos botones directamente a los lados distantes alineándolos con los lados principales o adjuntarlos directamente a los lados de la vista de texto, agregar un poco de relleno y si tiene espacio.


SI desea mantener el LinearLayout, lo que debe hacer es: crear un TableRow y luego colocar todos los elementos (ambos botones y la vista de texto) en eso. esto creará una línea recta a través de todos los artículos ordenadamente ordenados. Este código funcionó para mí, lo siento, no puedo poner una captura de pantalla de él (nuevo, y no hay suficientes puntos de reputación), pero funcionó para mí, espero que te ayude.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp"> <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cancel" android:layout_marginRight="30dp" android:layout_marginLeft="10dp"> </Button> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Place" android:layout_gravity="center_horizontal" android:layout_marginRight="30dp"> </TextView> <Button android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save" android:layout_gravity="right"> </Button> </TableRow> </LinearLayout>