Índice
Los layout nos permiten posicionar cada objeto gráfico en el lugar que queramos de la pantalla, es decir, nos permite diseñar el aspecto gráfico que va a tener nuestra pantalla. Los layouts son de tipo ViewGroup, una subclase de View
Existen varios tipos de Layouts para Android, vamos a ver los más comunes:
FrameLayout
Este tipo de Layout es el más básico, coloca a sus objetos hijos en la parte superior izquierda de la pantalla.
<?xml version="1.0" encoding="utf-8"?>
<framelayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<textview
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"/>
<textview
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"/>
</framelayout>
Como se puede apreciar en en resultado, si hay más de un hijo, los objetos se amontonan unos encima de otros.
LinearLayout
Este tipo de layout coloca sus hijos unos detras de otros, también comenzando por la esquina superior izquierda de la pantalla. Podemos colocarlos alineados horizontalmente o verticalmente mediante su propiedad android:orientation=”horizontal | vertical”
<?xml version="1.0" encoding="utf-8"?>
<linearlayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:background="#0ff"/>
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:background="#ff0"/>
</linearlayout>
En este caso, he pueso un fondo de color a cada texto (con la propiedad android:background) para diferenciarlo bien, y he usado la horientación horizontal, de haber usado la orientación vertical, los textos aparecerían uno debajo del otro:
RelativeLayout
Este Layout permite que coloquemos los elementos en un lugar con respecto a la posición de otro, es decir, colocar un botón a la derecha de un texto, o centrarlo en la pantalla, o por ejemplo, colocar un texto encima de tal elemento y a la derecha de este otro.
Para conseguir esto, RelativeLayout proporciona propiedades como android:layout_toRightOf o android:layout_alignLeft, que toman como valores los identificadores de los objetos, o valores booleanos.
<?xml version="1.0" encoding="utf-8"?>
<relativelayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:background="#0ff"
android:layout_centerinparent="true"
android:id="@+id/text1"/>
<textview
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:background="#ff0"
android:layout_below="@id/text1"/>
</relativelayout>
Como vemos, hemos centrado el texto1 en la pantalla con android:layout_centerInParent=”true” y hemos puesto debajo del texto1 al texto2 con android:layout_below=”@id/text1″
Siguiente Tema: Programación Android: Interfaz gráfica - Componentes gráficos y Eventos
¿Has visto algún error?: Por favor, ayúdame a corregirlo contactando conmigo o comentando abajo.