weightsum studio linearlayout layout_width layout_weight how horizontal examples ejemplo android layout weight

studio - Android: tratando de entender android: layout_weight



linearlayout padding (2)

¿Hay alguna manera de obtener un valor porcentual (0..100%) de android: layout_weight?

Por supuesto. Haz que sumen hasta 100.

Para su "valor porcentual", desea que el android:layout_height de los elementos individuales dentro de LinearLayout sea 0px .

Estoy tratando de dividir una página en tres partes. Me gustaría hacerlo en valores porcentuales, sin embargo, esto no es compatible con Android. En su lugar tengo que usar android:layout_weight . Pero me cuesta entenderlo y hacerlo bien. Especialmente cómo se calcula el tamaño real. ¿Hay alguna manera de obtener un valor porcentual (0..100%) de android:layout_weight ?

Pasé por algunos casos (ver captura de pantalla adjunta) para describir los problemas. Los campos de colores son todos <LinearLayout> con android:layout_height="fill_parent" , porque quiero que la pantalla completa se divida entre esos.

Caso 1

Esta bien simple Cada <LinearLayout> obtiene el 33%.

Caso 2

¡¿UPS?! El primero (amarillo) <LinearLayout> desaparece completamente? ¿Por qué?

Caso 3

Confundido de nuevo. El amarillo <LinearLayout> está de vuelta. Sin embargo, los dos primeros <LinearLayout> con el peso más pesado se hacen más pequeños? Que esta pasando?

Caso 4

No tengo la menor idea de cuáles son las matemáticas detrás de todo esto.


Cuando usas android: layout_height = "fill_parent" para las barras, no estás dejando ningún espacio disponible. (Ya que están llenando el padre). Debido a que los 3 están configurados para llenarse, la altura solicitada es en realidad 3 veces la altura del padre, por lo que los pesos se aplican a un espacio restante negativo. Esto explica el extraño comportamiento que está viendo, y por qué la solución layout_height a 0px lo resuelve.