Diferencia entre LinearLayout y RelativeLayout

David Galisteo Cantero

Veamos en este post cual es la gran diferencia entre Linear y Relative Layout.

Si estás empezando en el mundillo de android, puede que alguna vez te hayas visto en la coyuntura de no saber qué elegir, un layout lineal o relativo, y el por qué de la elección, bien, vamos a intentar explicar facilmente cada uno de ellos.

El funcionamiento es simple, con el LinearLayout, los elementos que están contenidos en el mismo se alinearán linealmente dependiendo de la orientación del contenedor, por ejemplo, supongamos el siguiente código:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/a" />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/asunto" />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:hint="@string/mensaje" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@string/enviar" />
</LinearLayout>

obtendríamos este resultado:

linear layout

Como podemos apreciar, los elementos se han ido “colocando” uno debajo del otro, ya que la orientación del LinearLayout era vertical, si fuese horizontal, todos los elementos quedarían alineados uno al lado del otro.

Veamos ahora un ejemplo con el RelativeLayout, el cual permite posicionar los elementos hijos en función del padre o de otros, por ejemplo:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText
        android:id="@+id/nombre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/recordatorio" />
    <Spinner
        android:id="@+id/fecha"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/nombre"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/hora" />
    <Spinner
        android:id="@id/hora"
        android:layout_width="96dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/nombre"
        android:layout_alignParentRight="true" />
    <Button
        android:layout_width="96dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/hora"
        android:layout_alignParentRight="true"
        android:text="@string/hecho" />
</RelativeLayout>

obtendríamos el siguiente resultado:

relative layout

Estaríamos situando la fecha y hora debajo del campo de texto, y el botón justo debajo de la hora.

Como vemos, es bastante simple la diferencia.

Espero que os haya sido de ayuda.

HackSaludos!

Publicado el 18-11-2013

Compartelo!

1 comentario

Deja un comentario

Comentanos

*
Ir arriba de la pagina