Estoy intentando hacer 4 botones espaciados uniformemente en una vista de retrato en Android.Botón espaciado uniformemente en el diseño
El espacio debe ampliarse y reducirse según el tamaño de la pantalla, con una cantidad uniforme de espacio entre cada botón y los bordes.
Intenté utilizar el diseño lineal, el peso y la gravedad del diseño, pero parece que no puedo centrar el botón verticalmente.
¿Es esto un error de diseño de Android? Más probablemente sea solo yo.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/btn_f"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="btn_f"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/btn_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="btn_b"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/btn_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="btn_a"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:layout_gravity="center"
>
<Button
android:id="@+id/settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Settings"
>
</Button>
</LinearLayout>
</LinearLayout>
De esta forma no funcionó ... pero si especificas tanto layout_gravity como gravedad como centro, funcionó .... para asegurarse de que la interfaz xml de Android está POBREMENTE documentada ... – Mascarpone
Debe ser android: layout_gravity = "center" no android: gravedad = "centro". No es necesario usar android: gravity = "center" aquí. La etiqueta de gravedad afecta el posicionamiento de su contenido, mientras que la distribución de gravedad afecta el posicionamiento respecto de su elemento primario. – wooohoh