Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LinearLayout
RelativeLayout
TableLayout
FrameLayout
ConstraintLayout
GridLayout
Layout
LinearLayout
LinearLayout Es uno de los Layout mas utilizados ya que distribuye los elementos uno detrás de
otro, de manera vertical u horizontal, puede especificar la dirección del diseño con el atributo
Android:orientación, por lo cual una lista vertical solo tendrá un campo segundario por fila,
independientemente el ancho que tenga, y una lista horizontal solo tendrá la altura de una fila(la
altura del campo secundario mas alto, mas el relleno).
Atributos:
android: baselineAligned: Este debe ser un valor booleano, ya sea "verdadero" o "falso" e impide
que el diseño alinee las líneas de base de sus hijos.
android:divider: Esto es dibujable para usar como un divisor vertical. Utiliza un valor de color, en
forma de "#rgb", "#argb", "#rrggbb" o "#aarrggbb"
android:gravity: Esto especifica cómo un objeto debe colocar su contenido, tanto en el eje X como
en el eje Y. Los valores posibles son: top, bottom, left, right, center, center_vertical,
center_horizontal
android:orientation: Esto especifica la dirección de la disposición y usará "horizontal" para una fila,
"vertical" para una columna. El valor predeterminado es horizontal.
RelativeLayout
Permite situar los elementos en cual quiera de los 4 lados del contenedor, Su principal
característica es que los widgets que estén dentro de este contenedor basaran su posición en
relación con los otros elementos. Ejemplo: Podemos definir que un widget quede debajo de otro y
a su vez este se alinee verticalmente con otro widgets.
Los atributos para posicionar los elementos con relación a otro widgets:
android:layout_above: Indica que el elemento se posicionará justo encima del elemento que tiene
el ID definido como valor de este atributo.
android:layout_alignParentTop: Indica al widget que su borde superior deberá estar alineado con
el borde superior del contenedor.
android:layout_alignParentLeft: Indica al widget que su borde izquierdo deberá estar alineado con
el borde izquierdo del contenedor.
TableLayout
TableLayout hereda directamente de LinearLayout, por lo que dispone de todas sus propiedades
,distribuye los elementos de forma tabular, agrupa los elementos en filas y columnas, los
contenedores de diseño de tabla no muestran una línea de borde para sus columnas, filas o celdas.
Para construir una fila en una tabla usaremos el elemento <TableRow>. Los objetos de fila de tabla
son las vistas secundarias de un diseño de tabla. Cada fila de la tabla tiene cero o más celdas y
cada celda puede contener solo un objeto de vista como ImageView, TextView o cualquier otra
vista. El ancho total de una tabla está definido por su contenedor principal.
Atributos:
android:stretchColumns: permite que una columna se expanda aumentando su anchura hasta que
todo el contenido del TableLayout ocupe la totalidad de la anchura de su contenedor.
FrameLayout
Este Layout permite el cambio dinamico de los elementos que contiene. posiciona las vistas usando
todo el contendor, suele utilizarse cuando quieras que varias vistas ocupen un mismo lugar, De
manera simple, podemos decir que FrameLayout está diseñado para bloquear un área en la pantalla
para mostrar un solo elemento.
android:foreground: Esto define la posibilidad de dibujar sobre el contenido y los valores posibles
pueden ser un valor de color, en forma de "#rgb", "#argb", "#rrggbb" o "#aarrggbb".
android:measureAllChildren:
ConstraintLayout
ConstraintLayout nos permitirá simplificar las interfaces en anidamiento, para hacerlas lo más
complejas posibles a nivel de diseño. Este layout, similar al RelativeLayout nos permitirá establecer
relaciones entre todos los elementos y la propia vista padre, permitiendo así ser mucho más flexible
que los demás.
Con un estilo muy visual, podremos desde Android Studio gestionar todas las relaciones que
establezcamos, de un modo muy sencillo, al más puro estilo drag-and-drop, en lugar de necesitar
utilizar el fichero XML.
Este layout incluye un modo llamado Autoconnect, el cual una vez activado, cada vez que añadamos
una vista al layout permitirá crear dos o más restricciones (constraint) para cada vista, para asignarlo
al espacio donde nosotros la hemos soltado
GrindLayout
Este tipo de layout fue incluido a partir de la API 14 (Android 4.0) y sus características son similares
al TableLayout, ya que se utiliza igualmente para distribuir los diferentes elementos de la interfaz
de forma tabular, distribuidos en filas y columnas. La diferencia entre ellos estriba en la forma que
tiene el GridLayout de colocar y distribuir sus elementos hijos en el espacio disponible. En este caso,
a diferencia del TableLayout indicaremos el número de filas y columnas como propiedades del
layout, mediante android:rowCount y android:columnCount. Con estos datos ya no es necesario
ningún tipo de elemento para indicar las filas, como hacíamos con el elemento TableRow del
TableLayout, sino que los diferentes elementos hijos se irán colocando ordenadamente por filas o
columnas (dependiendo de la propiedad android:orientation) hasta completar el número de filas o
columnas indicadas en los atributos anteriores. Adicionalmente, igual que en el caso anterior,
también tendremos disponibles las propiedades android:layout_rowSpan y
android:layout_columnSpan para conseguir que una celda ocupe el lugar de varias filas o columnas.
Existe también una forma de indicar de forma explícita la fila y columna que debe ocupar un
determinado elemento hijo contenido en el GridLayout, y se consigue utilizando los atributos
android:layout_row y android:layout_column. De cualquier forma, salvo para configuraciones
complejas del grid no suele ser necesario utilizar estas propiedades.