Pourquoi le bouton n'est pas centré verticalement dans LinearLayout?
J'ai un LinearLayout, qui ne contient qu'un seul bouton. Je veux ce bouton pour centrer verticalement et aligné à droite. J'ai essayé plusieurs méthodes, mais je ne pouvais pas faire ce bouton centré verticalement. Il est toujours alignés vers le haut. J'ai aussi essayé de mettre un bouton dans RelativeLayout, le bouton ne peut pas être centrée verticalement.
Le XML est comme ci-dessous. Il n'y a rien de mal avec cette mise en page? Merci.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#E8E3E4">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="More"
android:layout_gravity="right" />
</LinearLayout>
Changer android:layout_gravity="droite" android:layout_gravity="droite|center_vertical" ne permettent pas de résoudre le problème dans ma question.
source d'informationauteur user256239
Vous devez vous connecter pour publier un commentaire.
Vous dire dans les mots que vous voulez que ce soit centré verticalement, mais vous n'avez pas dit dans XML que vous voulez que ce soit centré verticalement. Vous aurez besoin d'ajuster votre
android:layout_gravity
attribut pour spécifier à la foisright
etcenter_vertical
.Cependant, je vous recommande de revenir à
RelativeLayout
. Utilisationandroid:layout_centerVertical="true"
etandroid:layout_alignParentRight="true"
faire sur le bouton centrer verticalement et aligné à droite.Aussi, gardez à l'esprit que votre
LinearLayout
aandroid:layout_height="wrap_content"
ce qui signifie qu'il n'est rien à être centré à l'intérieur. Vous avez besoin du conteneur d'avoir plus d'espace que son contenu (par exemple,fill_parent
) si vous voulez centrage pour avoir un sens.Ce code permet de placer le bouton à la verticale dans le centre et sur la droite de l'écran
Essayez d'ajouter android:gravity="center" à votre LinearLayout. Je me souviens d'avoir lu quelque part que cela pourrait faire l'affaire.