Une ressource de mise en page définit l'architecture de l'UI dans un objet Activity
ou un composant d'une UI.
- Emplacement du fichier :
res/layout/filename.xml
Le nom de fichier est utilisé comme ID de ressource.- Type de données de la ressource compilée :
- Pointeur vers une ressource (ou sous-classe)
View
. - Référence de la ressource :
-
En Java :
R.layout.filename
En XML :@[package:]layout/filename
- Syntaxe :
-
<?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>
Remarque : L'élément racine peut être un élément
ViewGroup
,View
ou<merge>
, mais il ne peut y avoir qu'un seul élément racine, qui doit contenir l'attributxmlns:android
avec l'espace de nomsandroid
, comme indiqué dans l'exemple de syntaxe précédent. - Éléments :
-
Valeur pour android:id
Pour la valeur de l'ID, vous devez généralement utiliser la syntaxe suivante :
"@+id/name"
, comme indiqué dans l'exemple suivant. Le symbole Plus (+
) indique qu'il s'agit d'un nouvel ID de ressource. Si ce n'est pas déjà fait, l'outilaapt
crée un entier pour la ressource dans la classeR.java
.<TextView android:id="@+id/nameTextbox"/>
Le nom
nameTextbox
est désormais un ID de ressource associé à cet élément. Vous pouvez ensuite faire référence auTextView
auquel l'ID est associé en Java :Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
Ce code renvoie l'objet
TextView
.Toutefois, si vous avez déjà défini un ID de ressource et qu'il n'est pas déjà utilisé, vous pouvez appliquer cet ID à un élément
View
en excluant le symbole plus dans la valeurandroid:id
.Valeur pour android:layout_height et android:layout_width
Les valeurs de hauteur et de largeur sont exprimées à l'aide de l'une des unités de dimension acceptées par Android (px, dp, sp, pt, in, mm) ou avec les mots clés suivants :
Valeur Description match_parent
Définit la dimension de sorte qu'elle corresponde à celle de l'élément parent. Ajouté au niveau d'API 8 pour rendre fill_parent
obsolète.wrap_content
Définit la dimension uniquement sur la taille requise pour s'adapter au contenu de cet élément. Éléments de vue personnalisée
Vous pouvez créer des éléments
View
etViewGroup
personnalisés, et les appliquer à votre mise en page de la même manière qu'un élément de mise en page standard. Vous pouvez également spécifier les attributs acceptés dans l'élément XML. Pour en savoir plus, consultez la section Créer des composants de vue personnalisée. - Exemple :
- Fichier XML enregistré sous
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>
Ce code d'application charge la mise en page pour une
Activity
dans la méthodeonCreate()
: -
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); }
- Voir aussi :