Linear and Relative Layout

En Android los elementos de la interfaz gráfica pueden definirse a través de ficheros xml. En ellos se definen los widgets o elementos de UI que queremos utilizar como botones, checkbox, imágenes… todos ellos son elementos de tipo View.

Para situar los widgets se utilizan contenedores llamados GroupViews, existen varios tipos aunque en nuestro artículo nos centraremos tan sólo en dos de ellos: LinearLayout y RelativeLayout.

Un GroupView puede contener a su vez otros GroupViews en su interior.

 

Relative Layout

Los elementos dentro de este tipo de layout pueden situarse describiendo su posición respecto a otros elementos views o respecto al propio layout.

Veamos un ejemplo del fichero xml que definiría un RelativeLayout que contiene en su interior 3 elementos:

En este ejemplo los elementos estarían todos flotados a la izquierda tal y como indica su atributo android:layout_alignParentLeft=«true» a excepción del primero de ellos que por defecto se coloca en la posición más alta y a la izquierda.

Debemos aclarar dos cosas:

  • Que significa el atributo android:id=»@+id/xxxxx»

Los views pueden ser nombrados con identificadores, estos son necesarios si necesitamos hacer referencia a ellos. La sintaxis de este atributo es muy sencilla, está formado por @+id/ seguido del nombre o identificador que queramos dar al widget.

  • ¿Porqué no se solapan los elementos unos sobre otros?

Lo normal en este ejemplo u otros es que los elementos se solapen unos views sobre otros, en este caso lo evitamos al indicar que elementos van unos encima de otros. Para ello necesitamos utilizar el identificador del elemento que va por encima.

Por ejemplo, queremos que el segundo TextView vaya debajo del primero, para ello utilizamos el atributo android:layout_below=»@+id/textView» indicando de este modo que nuestro segundo TextView va por debajo de aquel widget cuyo id sea textView, que en este caso es el primer TextView.

Lo mismo ocurre con el botón y el segundo text view.

Existen más atributos que permiten posicionar los elementos dentro del RelativeLayout como: android:layout_toRightOf o android:layout_alignParentTop podemos ver la referencia completa aquí

Linear Layout

Este layout permite a los elementos situarse secuencia o linealmente. Su disposición puede ser horizontal o vertical.

Vamos a ver un ejemplo de LinearLayout, en el que además veremos ViewGroups que contienen otros ViewGroups.


En este ejemplo hemos definido en total tres ViewGroups, todos ellos de tipo LinearLayout. El primero de ellos tiene una orientación horizontal como podemos ver en la línea 3. Este a su vez tiene en su interior otros dos LinearLayouts, el primero de ellos con orientación horizontal y el segundo vertical.

Dentro del primer hijo LinearLayout hemos agregado dos ButtonViews los cuales quedan flotados una al lado del otro horizontalmente.

En el segundo hijo LinearLayout hemos introducido dos CheckboxViews, los cuales flotan verticalmente uno bajo el otro.

 

 

Esperamos que os sirva de ayuda.