J'ai un texte en arabe, donc je règle la gravité à droite pour pouvoir commencer le texte du côté droit. Le texte commence à partir de maintenant. Mais un autre problème est que le texte commence à s'afficher en haut de la page. Mais je dois centrer verticalement le texte. Bien que j'ai essayé plusieurs variantes, je ne pouvais pas le centrer verticalement.
Voici l'exemple de mon fichier XML.
<LinearLayout
Android:id="@+id/linearLayout5"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="right"
Android:orientation="vertical" >
<TextView
Android:id="@+id/textView2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_vertical"
Android:layout_marginBottom="23dp"
Android:gravity="right"
Android:padding="@dimen/padding_maintextview"
Android:text="@string/text"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textSize="20sp" />
</LinearLayout>
Le problème est avec textview ci-dessus.
Ici, j'ai mis un fichier XML entier.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/page1background"
Android:paddingRight="@dimen/padding_large" >
<TextView
Android:id="@+id/textView1"
Android:layout_width="196dp"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:gravity="center_horizontal"
Android:paddingTop="@dimen/padding_Title_Top"
Android:text="@string/text"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textSize="20sp" />
<LinearLayout
Android:id="@+id/linearLayout1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView1"
Android:gravity="center_horizontal"
Android:orientation="vertical" >
<View
Android:id="@+id/view1"
Android:layout_width="fill_parent"
Android:layout_height="5dp" />
</LinearLayout>
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_above="@id/linearLayout2"
Android:layout_below="@id/linearLayout1"
Android:layout_gravity="center"
Android:padding="@dimen/padding_maintextview" >
<LinearLayout
Android:id="@+id/linearLayout5"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="right"
Android:orientation="vertical" >
<TextView
Android:id="@+id/textView2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_vertical"
Android:layout_marginBottom="23dp"
Android:gravity="right"
Android:padding="@dimen/padding_maintextview"
Android:text="@string/text"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textSize="20sp" />
</LinearLayout>
</ScrollView>
<LinearLayout
Android:id="@+id/linearLayout2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true" >
<View
Android:id="@+id/view2"
Android:layout_width="fill_parent"
Android:layout_height="100dp" />
</LinearLayout>
<LinearLayout
Android:id="@+id/linearLayout3"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true" >
<ImageButton
Android:id="@+id/back_arrow"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_marginBottom="30dp"
Android:layout_marginRight="45dp"
Android:layout_weight=".5"
Android:background="@drawable/backbut"
Android:contentDescription="@string/Description"
Android:onClick="onClickBtn"
Android:src="@drawable/backarrowpress" />
<ImageButton
Android:id="@+id/copyButton"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_marginLeft="45dp"
Android:layout_weight=".5"
Android:background="@drawable/copy"
Android:contentDescription="@string/Description"
Android:onClick="onClickBtn" />
</LinearLayout>
</RelativeLayout>
Quelqu'un peut-il me montrer où j'ai commis l'erreur? Je pense que le problème est clair. Si non dites moi dans les commentaires.
Ci-joint, j'ai ajouté le code mis à jour après avoir examiné vos réponses.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/page1background"
Android:paddingRight="@dimen/padding_large" >
<TextView
Android:id="@+id/textView1"
Android:layout_width="196dp"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:gravity="center_horizontal"
Android:paddingTop="@dimen/padding_Title_Top"
Android:text="@string/text"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textSize="20sp" />
<LinearLayout
Android:id="@+id/linearLayout1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView1"
Android:gravity="center_horizontal"
Android:orientation="vertical" >
<View
Android:id="@+id/view1"
Android:layout_width="fill_parent"
Android:layout_height="5dp" />
</LinearLayout>
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_above="@id/linearLayout2"
Android:layout_below="@id/linearLayout1"
Android:layout_gravity="center"
Android:layout_centerInParent="true"
Android:padding="@dimen/padding_maintextview" >
<LinearLayout
Android:id="@+id/linearLayout5"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="right"
Android:orientation="vertical" >
<TextView
Android:id="@+id/textView2"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_gravity="center_vertical"
Android:layout_marginBottom="23dp"
Android:gravity="center_vertical|right"
Android:padding="@dimen/padding_maintextview"
Android:text="@string/text"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textSize="20sp" />
</LinearLayout>
</ScrollView>
<LinearLayout
Android:id="@+id/linearLayout2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true" >
<View
Android:id="@+id/view2"
Android:layout_width="fill_parent"
Android:layout_height="100dp" />
</LinearLayout>
<LinearLayout
Android:id="@+id/linearLayout3"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true" >
<ImageButton
Android:id="@+id/back_arrow"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_marginBottom="30dp"
Android:layout_marginRight="45dp"
Android:layout_weight=".5"
Android:background="@drawable/backbut"
Android:contentDescription="@string/Description"
Android:onClick="onClickBtn"
Android:src="@drawable/backarrowpress" />
<ImageButton
Android:id="@+id/copyButton"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_marginLeft="45dp"
Android:layout_weight=".5"
Android:background="@drawable/copy"
Android:contentDescription="@string/Description"
Android:onClick="onClickBtn" />
</LinearLayout>
</RelativeLayout>
Mais je suis dans la même situation. Aucun texte n'est centré verticalement
Vos attributs TextView doivent être quelque chose comme,
<TextView ...
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:gravity="center_vertical|right" ../>
Maintenant, Description pourquoi cela doit être fait,
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Fait votre TextView à match_parent
ou fill_parent
si tu ne veux pas être comme ça, match_parent
vous devez donner certaines valeurs spécifiées à layout_height
donc il y a de la place pour le centre de gravité vertical. Android:layout_width="match_parent"
nécessaire car il aligne votre TextView dans le côté droit afin que vous puissiez reconnaître le respect de la disposition parente de TextView.
Maintenant, c'est à propos de Android:gravity
qui rend le contenu de votre alignement TextView. Android:layout_gravity
rend l'alignement de TextView respecté par rapport à sa disposition parent.
Mise à jour:
Comme ci-dessous, le commentaire dit use fill_parent
au lieu de match_parent
. (Problème sur un appareil.)
juste utiliser comme ça pour faire quelque chose au centre
Android:layout_gravity="center"
Android:gravity="center"
mis à jour :
Android:layout_gravity="center|right"
Android:gravity="center|right"
Mise à jour: Il suffit de supprimer MarginBottom de votre textview .. Faites comme ça .. pour votre textView
<LinearLayout
Android:id="@+id/linearLayout5"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="center" >
<TextView
Android:id="@+id/textView2"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:gravity="center|right"
Android:text="hello"
Android:textSize="20dp" />
</LinearLayout>
Le problème est le remplissage de la police dans la vue texte. Ajoutez simplement à votre textview:
Android:includeFontPadding="false"
Essayez de mettre Android:gravity="center_vertical|right"
dans le parent LinearLayout sinon comme dans RelativeLayout, vous pouvez mettre Android:layout_centerInParent="true"
à l'intérieur de votre scrollView
.
Dans la disposition relative, vous devez spécifier la hauteur de la vue texte:
Android:layout_height="100dp"
Ou spécifiez l'attribut de lignes:
Android:lines="3"