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>