Ressource de mise en page
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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'attribut xmlns:android
avec l'espace de noms android
, comme indiqué dans l'exemple de syntaxe précédent.
- Éléments :
-
<ViewGroup>
- Conteneur pour d'autres éléments
View
. Il existe de nombreux types d'objets ViewGroup
différents, et chacun vous permet de spécifier la mise en page des éléments enfants de différentes manières. Les différents types d'objets ViewGroup
incluent LinearLayout
, RelativeLayout
et FrameLayout
.
Ne partez pas du principe que toute dérivation de ViewGroup
accepte les vues imbriquées. Certains groupes de vues sont des implémentations de la classe AdapterView
, qui détermine ses enfants uniquement à partir d'un Adapter
.
Attributs :
android:id
- ID de ressource. Nom de ressource unique de l'élément, que vous pouvez utiliser pour obtenir une référence à la propriété
ViewGroup
à partir de votre application. Pour en savoir plus, consultez la section Valeur pour android:id.
android:layout_height
- Dimension ou mot clé. Obligatoire. Hauteur du groupe, en tant que valeur de dimension (ou ressource de dimension) ou mot clé (
"match_parent"
ou "wrap_content"
). Pour en savoir plus, consultez la section Valeurs pour android:layout_height et android:layout_width.
android:layout_width
- Dimension ou mot clé. Obligatoire. Largeur du groupe, en tant que valeur de dimension (ou ressource de dimension) ou mot clé (
"match_parent"
ou "wrap_content"
). Pour en savoir plus, consultez la section Valeurs pour android:layout_height et android:layout_width.
La classe de base ViewGroup
accepte davantage d'attributs, et de nombreux autres sont compatibles avec chaque implémentation de ViewGroup
. Pour connaître tous les attributs disponibles, consultez la documentation de référence correspondante pour la classe ViewGroup
(par exemple, les attributs XML LinearLayout
).
<View>
- Composant d'UI individuel, généralement appelé widget. Les différents types d'objets
View
incluent TextView
, Button
et CheckBox
.
Attributs :
android:id
- ID de ressource. Nom de ressource unique de l'élément, que vous pouvez utiliser pour obtenir une référence à la propriété
View
à partir de votre application. Pour en savoir plus, consultez la section Valeur pour android:id.
android:layout_height
- Dimension ou mot clé. Obligatoire. Hauteur de l'élément, en tant que valeur de dimension (ou ressource de dimension) ou mot clé (
"match_parent"
ou "wrap_content"
). Pour en savoir plus, consultez la section Valeurs pour android:layout_height et android:layout_width.
android:layout_width
- Dimension ou mot clé. Obligatoire. Largeur de l'élément, en tant que valeur de dimension (ou ressource de dimension) ou mot clé (
"match_parent"
ou "wrap_content"
). Pour en savoir plus, consultez la section Valeurs pour android:layout_height et android:layout_width.
La classe de base View
accepte davantage d'attributs, et de nombreux autres sont compatibles avec chaque implémentation de View
. Pour en savoir plus, consultez Mises en page. Pour connaître tous les attributs disponibles, consultez la documentation de référence correspondante (par exemple, les attributs XML TextView
).
<requestFocus>
- Tout élément représentant un objet
View
peut inclure cet élément vide, ce qui permet à son parent de se concentrer initialement sur l'écran. Vous ne pouvez avoir qu'un seul de ces éléments par fichier.
<include>
- Inclut un fichier de mise en page dans cette mise en page.
Attributs :
layout
- Ressource de mise en page. Obligatoire. Référence à une ressource de mise en page.
android:id
- ID de ressource. Remplace l'ID attribué à la vue racine dans la mise en page incluse.
android:layout_height
- Dimension ou mot clé. Remplace la hauteur attribuée à la vue racine dans la mise en page incluse. Ceci est uniquement efficace si
android:layout_width
est également déclaré.
android:layout_width
- Dimension ou mot clé. Remplace la largeur attribuée à la vue racine dans la mise en page incluse. Ceci est uniquement efficace si
android:layout_height
est également déclaré.
Vous pouvez inclure dans la propriété <include>
tout autre attribut de mise en page compatible avec l'élément racine. Il remplacera alors ceux définis dans l'élément racine.
Attention : Si vous souhaitez remplacer les attributs de mise en page à l'aide de la balise <include>
, vous devez remplacer android:layout_height
et android:layout_width
afin qu'ils prennent effet.
Une autre façon d'inclure une mise en page consiste à utiliser ViewStub
: une vue légère qui ne consomme aucun espace de mise en page jusqu'à tant que vous ne la gonflez pas explicitement. Elle inclut alors un fichier de mise en page défini par son attribut android:layout
. Pour en savoir plus sur l'utilisation de ViewStub
, consultez la page Charger des vues à la demande.
<merge>
- Autre élément racine qui ne figure pas dans la hiérarchie de la mise en page. L'utiliser comme élément racine est utile si vous savez que cette mise en page sera placée dans une mise en page contenant déjà l'objet
View
parent approprié pour contenir les enfants de l'élément <merge>
.
Ceci est particulièrement utile lorsque vous prévoyez d'inclure cette mise en page dans un autre fichier de mise en page à l'aide de <include>
et que cette mise en page ne nécessite pas un autre conteneur ViewGroup
. Pour en savoir plus, consultez la section Réutiliser des mises en page avec <include>.
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'outil aapt
crée un entier pour la ressource dans la classe R.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 au TextView
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 valeur android: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
et ViewGroup
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éthode onCreate()
:
-
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 :
-
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/04/02 (UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Il n'y a pas l'information dont j'ai besoin"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Trop compliqué/Trop d'étapes"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Obsolète"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problème de traduction"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Mauvais exemple/Erreur de code"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Autre"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Facile à comprendre"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"J'ai pu résoudre mon problème"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Autre"
}]
{
"last_modified": "Dernière mise à jour le 2024/04/02 (UTC).",
"state": ""
}