Un recurso de diseño define la arquitectura de la IU en una Activity
o en un componente de una IU.
- ubicación del archivo:
res/layout/filename.xml
Se utiliza el nombre del archivo como ID de recurso.- tipo de datos de recursos compilados:
- Es un 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 puede haber un solo elemento raíz y este debe contener el atributoxmlns:android
con el espacio de nombresandroid
, como se muestra en el ejemplo de sintaxis anterior. - elementos:
-
Valor para android:id
Para el valor de ID, por lo general, se usa este formato de sintaxis:
"@+id/name"
, como se muestra en el siguiente ejemplo. El símbolo más,+
, 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.<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 si aún no se utilizó), puedes aplicar el ID a un elemento
View
excluyendo el símbolo + en el valorandroid:id
.Valores para android:layout_height y android:layout_width
Los valores de altura y ancho se expresan mediante cualquiera de las unidades de dimensión compatibles con Android (px, dp, sp, pt, in y mm) o las siguientes palabras clave:
Valor Descripción match_parent
Configura la dimensión para que coincida con la del elemento superior. Se agregó en el nivel de API 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 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. Para obtener más información, consulta Cómo crear componentes de vista personalizada. - ejemplo:
- Archivo en formato 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 la aplicación carga el diseño para una
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: