Android RelativeLayout es una subclase de ViewGroup, que se usa para especificar la posición de los elementos de vista secundarios entre sí, como (A a la derecha de B) o en relación con el principal (fijar en la parte superior del principal).
En lugar de usar LinearLayout, tenemos que usar RelativeLayout para diseñar la interfaz de usuario y mantener nuestra jerarquía plana porque mejora el rendimiento de la aplicación.
Atributos importantes para posicionar vistas en RelativeLayout
Como sabemos, necesitamos definir la posición de las vistas secundarias o ViewGroups en relación con cada elemento o con el principal. Por defecto, la posición es superior izquierda, si alguien olvida especificar la posición de las vistas secundarias.
atributos XML | Descripción |
---|---|
layout_alignParentLeft | Se establece como «verdadero» para hacer coincidir el borde izquierdo de la vista con el borde izquierdo del padre. |
layout_alignParentRight | Se establece como «verdadero» para hacer coincidir el borde derecho de la vista con el borde derecho del padre. |
layout_alignParentTop | Se establece como «verdadero» para hacer coincidir el borde superior de la vista con el borde superior del padre. |
layout_alignParentBottom | Se establece como «verdadero» para hacer coincidir el borde inferior de la vista con el borde inferior del padre. |
layout_alignLeft | Acepta otra identificación de vista hermana y alinea la vista a la izquierda de la identificación de vista especificada |
layout_alignRight | Acepta otra identificación de vista hermana y alinea la vista a la derecha de la identificación de vista especificada. |
layout_alignEmpezar | Acepta otra identificación de vista hermana y alinea la vista al inicio de la identificación de vista especificada. |
layout_alignEnd | Acepta otra identificación de vista hermana y alinea la vista al final de la identificación de vista especificada. |
layout_centerInParent | Cuando se establece en «verdadero», la vista se alineará con el centro del padre. |
layout_centerHorizontal | Cuando se establece en «verdadero», la vista se alineará horizontalmente al centro dentro de su padre. |
layout_centerVertical | Cuando se establece en «verdadero», la vista se alineará verticalmente al centro dentro de su padre. |
diseño_a la izquierda de | Acepta otra identificación de vista hermana y coloca la vista a la izquierda de la identificación de vista especificada. |
diseño_a laDerechaDe | Acepta otra identificación de vista hermana y coloca la vista a la derecha de la identificación de vista especificada. |
diseño_aInicioDe | Acepta otra identificación de vista hermana y coloca la vista al comienzo de la identificación de vista especificada. |
diseño_aFinalDe | Acepta otra identificación de vista hermana y coloca la vista al final de la identificación de vista especificada. |
diseño_arriba | Acepta otra identificación de vista hermana y coloca la vista sobre la identificación de vista especificada. |
diseño_abajo | Acepta otra identificación de vista hermana y coloca la vista debajo de la identificación de vista especificada. |
¿Cómo declarar RelativeLayout en un archivo XML?
En primer lugar, debemos declarar RelativeLayout en el archivo de diseño usando el siguiente código.
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="10dp" android:paddingRight="10dp"> // Add other view or ViewGroup here </RelativeLayout>
RelativeLayout en el archivo activity_main.xml
El siguiente es el código para RelativeLayout en el archivo xml.
XML
<?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="10dp" android:paddingRight="10dp"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="First name:" android:layout_marginTop="20dp" android:textSize="20dp"/> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/textView1" android:layout_marginTop="8dp"/> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="10dp" android:text="Last name:" android:textSize="20dp"/> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_toRightOf="@id/textView2" android:layout_marginTop="45dp"/> <Button android:id="@+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_below="@id/textView2" android:layout_marginTop="20dp" android:text="Submit" /> </RelativeLayout>
Archivo MainActivity.kt
Cuando hayamos creado el diseño, debemos cargar el recurso de diseño XML desde nuestro método de devolución de llamada onCreate() de actividad y acceder al elemento de la interfaz de usuario desde el XML usando findViewById.
Kotlin
package com.geeksforgeeks.myfirstKotlinapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // below access the UI elements } }
Salida de diseño relativo:
Podemos ejecutar la aplicación utilizando el dispositivo virtual de Android (AVD) para obtener el resultado del código anterior.
Publicación traducida automáticamente
Artículo escrito por Praveenruhil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA