RelativeLayout
es una vista de grupo que muestra a sus vistas hija con posicionamiento relativo. El posicionamiento de una vista se especifica en función de otra vista (a la izquierda de o debajo de otra vista, por ejemplo) o en función del área descrita por la plantilla (alineada a la izquierda o al centro, por ejemplo).Una plantilla con posicionamiento relativo nos proporciona una estructura plana, es decir, no existen vistas de grupo anidadas por lo que hay una mejora notable en el rendimiento. Estas plantillas son una buena alternativa al uso de vistas
LinearLayout
anidadas.Posicionamiento.
Una plantillaRelativeLayout
nos permite definir la posición de una vista hija con respecto a otra vista hija o con respecto a su vista padre. Por defecto, todas las vistas hija se posicionan en la parte superior izquierda de la plantilla. Algunos de los parámetros asociados a la plantilla (RelativeLayout.LayoutParams
) que podremos especificar para cada vista hija son:android:layout_alignParentTop
Si valetrue
, hace coincidir el borde superior de la vista con el borde superior del padre.android:layout_centerVertical
Si valetrue
, centra verticalmente la vista con respecto al padre.android:layout_below
Posiciona el borde superior de la vista justo debajo de la vista especificada con suid
.android:layout_toRightOf
Posiciona el borde izquierdo de la vista a la derecha de la vista especificada con suid
.
Las dependencias entre vistas, a la hora de definir sus posicionamientos, pueden ser definidas sin importar su orden. Es decir, podremos declarar que una vista se posiciona en función de otra incluso cuando ésta última se declara con posterioridad a la primera.
Ejemplo.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp" >
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/reminder" />
<Spinner
android:id="@+id/dates"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/times" />
<Spinner
android:id="@id/times"
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:layout_alignParentRight="true" />
<Button
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_below="@id/times"
android:layout_alignParentRight="true"
android:text="@string/done" />
</RelativeLayout>
El resultado del ejemplo quedaría:
No hay comentarios:
Publicar un comentario