Disposition relative Android

Android RelativeLayout vous permet de spécifier la manière dont les vues enfants sont positionnées les unes par rapport aux autres. La position de chaque vue peut être spécifiée par rapport aux éléments frères ou par rapport au parent.

Disposition relative

Attributs RelativeLayout

Voici les attributs importants spécifiques à RelativeLayout -

N ° Sr. Attribut et description
1

android:id

Il s'agit de l'ID qui identifie de manière unique la mise en page.

2

android:gravity

Cela spécifie comment un objet doit positionner son contenu, sur les axes X et Y. Les valeurs possibles sont top, bottom, left, right, center, center_vertical, center_horizontal etc.

3

android:ignoreGravity

Cela indique quelle vue ne doit pas être affectée par la gravité.

En utilisant RelativeLayout, vous pouvez aligner deux éléments par la bordure droite, ou créer l'un en dessous de l'autre, centré sur l'écran, centré à gauche, etc. Par défaut, toutes les vues enfants sont dessinées en haut à gauche de la mise en page, vous devez donc définir la position de chaque vue à l'aide des différentes propriétés de mise en page disponibles à partir deRelativeLayout.LayoutParams et quelques-uns des attributs importants sont donnés ci-dessous -

N ° Sr. Attribut et description
1

android:layout_above

Positionne le bord inférieur de cette vue au-dessus de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom"

2

android:layout_alignBottom

Fait correspondre le bord inférieur de cette vue au bord inférieur de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

3

android:layout_alignLeft

Fait correspondre le bord gauche de cette vue au bord gauche de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

4

android:layout_alignParentBottom

Si true, fait correspondre le bord inférieur de cette vue avec le bord inférieur du parent. Doit être une valeur booléenne, "true" ou "false".

5

android:layout_alignParentEnd

Si la valeur est true, le bord final de cette vue correspond au bord final du parent. Doit être une valeur booléenne, "true" ou "false".

6

android:layout_alignParentLeft

Si la valeur est true, fait correspondre le bord gauche de cette vue au bord gauche du parent. Doit être une valeur booléenne, "true" ou "false".

sept

android:layout_alignParentRight

Si true, fait correspondre le bord droit de cette vue avec le bord droit du parent. Doit être une valeur booléenne, "true" ou "false".

8

android:layout_alignParentStart

Si true, fait correspondre le bord de départ de cette vue au bord de départ du parent. Doit être une valeur booléenne, "true" ou "false".

9

android:layout_alignParentTop

Si true, fait correspondre le bord supérieur de cette vue avec le bord supérieur du parent. Doit être une valeur booléenne, "true" ou "false".

dix

android:layout_alignRight

Fait correspondre le bord droit de cette vue au bord droit de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

11

android:layout_alignStart

Fait correspondre le bord de début de cette vue au bord de départ de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

12

android:layout_alignTop

Fait correspondre le bord supérieur de cette vue au bord supérieur de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

13

android:layout_below

Positionne le bord supérieur de cette vue sous l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

14

android:layout_centerHorizontal

Si true, centre cet enfant horizontalement dans son parent. Doit être une valeur booléenne, "true" ou "false".

15

android:layout_centerInParent

Si true, centre cet enfant horizontalement et verticalement dans son parent. Doit être une valeur booléenne, "true" ou "false".

16

android:layout_centerVertical

Si vrai, centre cet enfant verticalement dans son parent. Doit être une valeur booléenne, "true" ou "false".

17

android:layout_toEndOf

Positionne le bord de début de cette vue à la fin de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

18

android:layout_toLeftOf

Positionne le bord droit de cette vue à gauche de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

19

android:layout_toRightOf

Positionne le bord gauche de cette vue à droite de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

20

android:layout_toStartOf

Positionne le bord de fin de cette vue sur le début de l'ID de vue d'ancrage donné et doit être une référence à une autre ressource, sous la forme "@ [+] [package:] type: nom".

Exemple

Cet exemple vous guidera à travers des étapes simples pour montrer comment créer votre propre application Android à l'aide de la disposition relative. Suivez les étapes suivantes pour modifier l'application Android que nous avons créée dans le chapitre Exemple de Hello World -

Étape La description
1 Vous utiliserez Android Studio IDE pour créer une application Android et la nommerez comme démo sous un package com.example.demo comme expliqué dans le chapitre Exemple de Hello World .
2 Modifiez le contenu par défaut du fichier res / layout / activity_main.xml pour inclure quelques widgets dans la disposition relative.
3 Définir les constantes requises dans res / valeurs / strings.xml fichier
4 Exécutez l'application pour lancer l'émulateur Android et vérifier le résultat des modifications effectuées dans l'application.

Voici le contenu du fichier d'activité principal modifié src/com.example.demo/MainActivity.java. Ce fichier peut inclure chacune des méthodes fondamentales du cycle de vie.

package com.example.demo;

import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
   
}

Voici le contenu de res/layout/activity_main.xml fichier -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:paddingLeft="16dp"
   android:paddingRight="16dp" >
   
   <EditText
      android:id="@+id/name"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:hint="@string/reminder" />
      
   <LinearLayout
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_alignParentStart="true"
      android:layout_below="@+id/name">
      
      <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="New Button"
         android:id="@+id/button" />
      
      <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="New Button"
         android:id="@+id/button2" />
      
   </LinearLayout>

</RelativeLayout>

Voici le contenu de res/values/strings.xml pour définir deux nouvelles constantes -

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="action_settings">Settings</string>
   <string name="reminder">Enter your name</string>
</resources>

Essayons d'exécuter notre modifié Hello World!application que nous venons de modifier. Je suppose que vous avez créé votreAVDlors de la configuration de l'environnement. Pour exécuter l'application à partir d'Android Studio, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Android Studio installe l'application sur votre AVD et la démarre et si tout va bien avec votre configuration et votre application, elle affichera la fenêtre Emulator suivante -