Un recurso de diseño define la arquitectura de la IU en una Actividad o en un componente de una IU.
- ubicación del archivo:
res/layout/filename.xml
Se usará el nombre del archivo como ID del recurso.- tipo de datos de recursos compilados:
- Puntero de recurso a un recurso
View
(o de subclase). - referencia del recurso:
-
En Java:
R.layout.filename
En XML:@[package:]layout/filename
- sintaxis:
-
<?xml version="1.0" encoding="utf-8"?> <ViewGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [ViewGroup-specific attributes] > <View android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [View-specific attributes] > <requestFocus/> </View> <ViewGroup > <View /> </ViewGroup> <include layout="@layout/layout_resource"/> </ViewGroup>
Nota: El elemento raíz puede ser un elemento
ViewGroup
,View
o<merge>
, pero solo debe haber un elemento raíz, y este debe contener el atributoxmlns:android
con el espacio de nombresandroid
como se muestra. - elementos:
-
Valor de
android:id
Para el valor de ID, por lo general, debes usar esta sintaxis:
"@+id/name"
. El símbolo +,+
, indica que es un nuevo ID de recurso, y la herramientaaapt
creará un nuevo número entero de recurso en la claseR.java
, si aún no existe. Por ejemplo:<TextView android:id="@+id/nameTextbox"/>
El nombre
nameTextbox
ahora es un ID de recurso adjunto a este elemento. Luego, puedes consultar elTextView
al que está asociado el ID en Java:Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
Este código muestra el objeto
TextView
.Sin embargo, si ya definiste un recurso de ID (y aún no se utilizó), puedes aplicar el ID a un elemento
View
excluyendo el símbolo + en el valorandroid:id
.Valor para
android:layout_height
yandroid:layout_width
:El valor de alto y ancho se puede expresar con cualquiera de las unidades de dimensión compatibles con Android (px, dp, sp, pt, in, mm) o las siguientes palabras clave:
Valor Descripción match_parent
Configura la dimensión para que coincida con la del elemento principal. Se agregó en la API nivel 8 para dar de baja fill_parent
.wrap_content
Configura la dimensión solo en el tamaño necesario para que se adapte al contenido de este elemento. Elementos de vista personalizada
Puedes crear tus propios elementos
View
yViewGroup
personalizados, y aplicarlos a tu diseño de la misma manera que un elemento de diseño estándar. También puedes especificar los atributos compatibles con el elemento XML. Puedes obtener más información en la guía para desarrolladores sobre Componentes personalizados. - ejemplo:
- Archivo XML guardado en
res/layout/main_activity.xml
:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
Este código de aplicación cargará el diseño para un
Activity
en el métodoonCreate()
: -
Kotlin
public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) }
Java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }
- consulta también: