J'essaie de centrer un bouton dans la disposition relative, est-ce possible? J'ai essayé les fonctions Gravité et Orientation mais elles ne font rien.
Essayer
Android:layout_centerHorizontal="true"
Exactement comme ça, ça marche pour moi:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="#ff0000">
<Button
Android:id="@+id/btn_mybutton"
Android:layout_height="wrap_content"
Android:layout_width="124dip"
Android:layout_marginTop="5dip"
Android:layout_centerHorizontal="true"/>
</RelativeLayout>
Vous pouvez utiliser CENTER_IN_PARENT pour une présentation relative.
Ajoutez Android:layout_centerInParent="true"
à l'élément que vous souhaitez centrer dans RelativeLayout
Arcadia, essayez juste le code ci-dessous. Il existe plusieurs façons d’obtenir le résultat recherché, c’est l’une des méthodes les plus simples.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/relative_layout"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:gravity="center">
<Button
Android:id="@+id/the_button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Centered Button"/>
</RelativeLayout>
Le réglage de la gravité de RelativeLayout lui-même affectera tous les objets placés à l'intérieur de celui-ci. Dans ce cas, c'est juste le bouton. Vous pouvez utiliser n'importe quel paramètre de gravité ici (par exemple, center_horizontal, top, right, etc.).
Vous pouvez également utiliser ce code ci-dessous:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/relative_layout"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<Button
Android:id="@+id/the_button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Centered Button"
Android:layout_centerInParent="true"/>
</RelativeLayout>
Résumé
Ajouter:
Android:layout_centerInParent="true"
ne fonctionne que sur RelativeLayout, si l'un des attributs suivants est également défini pour la vue:
Android:layout_alignParentLeft="true"
Android:layout_alignParentStart="true"
Android:layout_alignParentTop="true"
Android:layout_alignParentBottom="true"
Android:layout_alignParentRight="true"
Android:layout_alignParentEnd="true"
qui aligne la vue enfant sur la vue parent. Le "centre" est basé sur l'axe de l'alignement que vous avez choisi:
gauche/droite -> vertical
haut/bas -> horizontal
Définition de la gravité des enfants/du contenu dans la vue:
Android:gravity="center"
dans tous les cas, l'enfant est centré à l'intérieur de la vue parent, si aucun alignement n'est défini. En option, vous pouvez choisir:
<!-- Axis to Center -->
Android:gravity="center_horizontal"
Android:gravity="center_vertical"
<!-- Alignment to set-->
Android:gravity="top"
Android:gravity="bottom"
Android:gravity="left"
Android:gravity="right"
Android:gravity="fill"
...
Ensuite il y a:
Android:layout_gravity="center"
qui centre la vue elle-même à l'intérieur de son parent
Et enfin, vous pouvez ajouter l'attribut suivant à la vue des parents:
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
Utilisez l'attribut Android:centerInParent="true"
dans une vue, Pour centrer la vue dans la présentation relative.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/main_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
>
<TextView
Android:layout_centerInParent="true"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="NWE"
Android:textSize="30dp"/>
</RelativeLayout>
C'est facile, ne l'alignez à rien
<Button
Android:id="@+id/the_button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:text="Centered Button"/>
Pour centrer l'alignement dans l'une des directions, utilisez Android: layout_centerHorizontal = "true" ou Android: layout_centerVertical = "true" dans la présentation enfant.
C'est vraiment facile. Essayez le code ci-dessous,
<RelativeLayout
Android:id="@+id/second_RL"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_below="@+id/first_RL"
Android:background="@Android:color/holo_blue_bright"
Android:gravity="center">
<Button
Android:id="@+id/button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Button" />
</RelativeLayout>
Supprimer tout alignement comme Android: layout_alignParentStart = "true" et Ajouter centerInParent a fonctionné pour moi. Si le "align" reste dans, le CenterInParent ne fonctionne pas
vous devez l'avoir aligné à gauche ou à droite de la vue parent
n'utilisez aucun de ceux-ci lorsque vous utilisez les codes Android:centerInParent="true"
: -
Android:layout_alignParentLeft="true"
Android:layout_alignParentLeft="true"
Android:layout_alignRight=""
etc.