Pregunta

Estoy tratando de dividir una página en tres partes. Me gustaría hacerlo en valores porcentuales, sin embargo, eso 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 forma 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 ellos.

Caso 1

alt text

Está bien, simple. Cada <LinearLayout> Obtiene el 33%.

Caso 2

alt text

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

Caso 3

alt text

Confundido de nuevo. El amarillo <LinearLayout> está de vuelta. Sin embargo, los dos primero <LinearLayout> ¿Con el peso más pesado se hace más pequeño? ¿Qué está pasando?

Caso 4

alt text

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

¿Fue útil?

Solución

¿Hay alguna forma de obtener un valor porcentual (0..100%) de Android: Layout_weight?

Por supuesto. Haz que suman hasta 100.

Para su "valor porcentual", desea el android:layout_height de los elementos individuales dentro del LinearLayout ser - estar 0px.

Otros consejos

Cuando usa Android: Layout_height = "Fill_parent" para las barras, no está dejando ningún espacio disponible. (Dado que están llenando a los padres). Debido a que los 3 están configurados para llenar, la altura solicitada es en realidad 3 veces la altura de los padres, por lo que los pesos se aplican a un espacio negativo restante. Esto explica el comportamiento extraño que está viendo y por qué establecer LEYOUT_HEight en 0PX lo resuelve.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top