Explicación detallada de LinearLayout del control de diseño de Android
Explicación detallada del control de diseño de Android LinearLayout
LinearLayout es un control de diseño lineal. Los subcontroles que contiene se organizarán horizontal o verticalmente, y todos los widgets se organizarán según su orden relativo. posiciones o Para otros contenedores, algunos controles faltarán o desaparecerán cuando excedan el límite. Por lo tanto, una lista vertical solo tendrá un widget o contenedor por fila, sin importar cuán ancho sea, mientras que una lista horizontal tendrá solo una altura de fila (la altura es la altura del widget secundario más alto más la altura del borde). LinearLayout mantiene el espaciado y la alineación mutua entre los widgets o contenedores que contiene (en relación con la alineación derecha, media o izquierda de un control).
atributo xml
android:baselineAligned: si se permite a los usuarios ajustar la línea base de su contenido.
android:baselineAlignedChildIndex: cuando un diseño lineal forma parte de una alineación base con otro diseño, puede especificar la alineación base de su contenido.
android:gravity: especifica cómo colocar el contenido de este objeto (valores de coordenadas x/y) en este objeto.
android:orientation: establece la orientación (horizontal/vertical) de su contenido.
La palabra inglesa gravitation significa centro de gravedad, y aquí significa posición de aparcamiento.
La diferencia entre android:layout_gravity y android:gravity
Como puede ver por el nombre, android:gravity se refiere al elemento en sí, donde se muestra el texto del elemento en sí. Against Cambia la configuración de los atributos, pero si no se establece, el valor predeterminado está a la izquierda.
android:layout_gravity es relativo a su elemento principal, lo que indica dónde se muestra el elemento dentro del elemento principal.
Por ejemplo, botón: android:layout_gravity representa la posición del botón en la interfaz. android:gravity indica la posición de las palabras en el botón.
Valores opcionales
Los valores opcionales para estos dos atributos son: arriba, abajo, izquierda, derecha, centro_vertical, relleno_vertical, centro_horizontal, relleno_horizontal, centro, relleno, clip_vertical.
Y estos atributos se pueden seleccionar múltiples, separados por "|".
El valor predeterminado de esto es: Gravity.LEFT
LinearLayout también admite la especificación de pesos de relleno para los widgets o contenedores que contiene. La ventaja es que permite que el widget o contenedor que contiene llene el espacio restante en la pantalla. Esto también evita que un montón de widgets o contenedores se amontonen en una pantalla grande, permitiéndoles escalar para llenar el espacio vacío. El espacio restante se asignará a la pantalla según la proporción de peso especificada por estos widgets o contenedores. El valor de peso predeterminado es 0, lo que significa que los widgets o contenedores se muestran de acuerdo con el tamaño real. Si el valor es superior a 0, el espacio disponible restante del Contenedor se dividirá. El tamaño de la división depende del diseño_peso de cada uno. widget o contenedor y el peso. La proporción entre todos los widgets o contenedores. Por ejemplo, si hay tres cuadros de texto, a dos de los cuales se les asigna un peso de 1, entonces los dos cuadros de texto se ampliarán por igual y llenarán el espacio restante, mientras que el tercer cuadro de texto no se ampliará para mostrar.
Si uno de los dos primeros cuadros de texto tiene un valor de 2 y el otro es 1, 2/3 del espacio restante después de que se muestre el tercer cuadro de texto se asignará al que tenga un peso de 2, y 1/3 se le dará al que tiene un peso de 1. Es decir, cuanto mayor sea el peso, mayor será la importancia.
Si LinearLayout contiene sub-LinearLayout, cuanto mayor sea el peso entre sub-LinearLayout, menor será la importancia. Si hay LinearLayout A que contiene LinearLayout C, D, el peso de C es 2 y el peso de D es 1, entonces 2/3 del espacio de la pantalla se asigna a D con un peso de 1 y se asigna 1/3 a D con un peso de 2. C. En el caso de LinearLayout anidado, el sub-LinearLayout debe establecer el peso; de lo contrario, la situación predeterminada es que el sub-LinearLayout sin peso establecido ocupa toda la pantalla