Comme mentionné dans l'introduction, RelativeLayout permet aux vues d'être positionnées les unes par rapport aux autres et par le parent. RelativeLayout est particulièrement utile pour réduire le nombre de mises en page imbriquées, ce qui est très important pour réduire les besoins de mémoire et de traitement.

Se préparer
Créez un nouveau projet et appelez-le RelativeLayout. La disposition par défaut utilise un RelativeLayout, que nous utiliserons pour aligner les Vues horizontalement et verticalement.
Comment faire...
1. Ouvrez le fichier res / layout / activity_main.xml et modifiez-le comme suit:
<TextView
android: id = "@ + id / textView1"
android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: text = "Centré"
android: layout_centerVertical = "vrai"
android: layout_centerHorizontal = "vrai" />
<TextView
android: id = "@ + id / textView2"
-C28}
android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Ci-dessous TextViewl" android: layout_below = "@ + id / textView1" android: layout_toLeftOf = "@ id / textView1" /> <TextView
android: id = "@ + id / textView3" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "En bas à droite" android: layout_alignParentBottom = "true" android: layout_alignParentEnd = "true" />
2. Exécutez le code ou affichez la disposition dans l'onglet Conception

Comment ça marche...
C'est un exercice très simple, mais il montre plusieurs des options de RelativeLayout: layout_centerVertical, layout_centerHorizontal, layout_below, layout_alignParentBottom, et ainsi de suite.
Les attributs de disposition RelativeLayout les plus couramment utilisés sont les suivants:
► layout_below: Cette vue doit être en dessous de la vue spécifiée
► layout_above: Cette vue doit être au-dessus de la vue spécifiée
► layout_alignParentTop: Aligner cette vue sur le bord supérieur du parent
► layout_alignParentBottom: Aligner cette vue sur le bord inférieur du parent
► layout_alignParentLeft: Aligne cette vue sur le bord gauche du parent
► layout_alignParentRight: Aligne cette vue sur le bord droit du parent
► layout_centerVertical: Centrer cette vue verticalement dans le parent
► layout_centerHorizontal: Centrer cette vue horizontalement dans le parent
► layout_center: Centre cette vue à la fois horizontalement et verticalement dans le parent
Pour la liste complète des paramètres RelativeLayout, visitez:
http://developer.android.com/reference/android/
widget / RelativeLayout.LayoutParams.html.
Il y a plus...
Contrairement à ce que nous avons vu précédemment, voici un exemple utilisant un LinearLayout juste pour centrer un TextView (créant le même effet que le paramètre layout_center de
Disposition relative):
<? xml version = "1.0" encoding = "utf-8"?>
http://schemas.android.com/apk/res/ android" "><LinearLayout xmlns: android = "http://schemas.android.com/apk/res/ android"
android: orientation = "horizontal"
android: layout_width = "match_parent"
android: layout_height = "match_parent"
android: gravity = "centre">
<LinearLayout
android: layout_width = "0dp" android: layout_height = "wrap_content" android: layout_weight = "1" android: gravité = "centre">
<TextView
android: id = "@ + id / imageButton_speak" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Centré" />
</ LinearLayout>
</ LinearLayout>
Notez que cette disposition est d'un niveau plus profond que l'équivalent RelativeLayout (qui est un LinearLayout imbriqué dans LinearLayout parent.) Bien qu'un exemple simple, c'est une bonne idée d'éviter l'imbrication inutile car elle peut affecter la performance, surtout quand une mise en page est gonflée à plusieurs reprises (comme un ListItem).

Voir également
► La recette suivante, Utilisation de LinearLayout, qui vous donnera une disposition alternative
► Voir la section Optimisation des mises en page avec la visionneuse Hiérarchie pour plus d'informations sur la conception de la mise en page efficace.