238 votes

Aligner le texte à droite dans un TextView Android

J'ai un TextView dans mon application. Je veux aligner le texte qu'il contient sur la droite. J'ai essayé d'ajouter :

android:gravity="right"

Mais ça ne marche pas pour moi.

Qu'est-ce que je pourrais faire de mal ?

202voto

a fair player Points 2514

Je pense que c'est ce que vous faites : android:layout_width = "wrap_content"
Si c'est le cas, faites ceci : android:layout_width = "match_parent"

2 votes

@Bishan fill remplit le reste de l'espace, match le rend égal à la largeur du parent.

11 votes

En fait, fill_parent et match_parent sont la même chose. Le nom a été changé en match_parent car apparemment fill_parent prêtait à confusion.

167voto

wiztrail Points 1522

En général, android:gravity="right" est différent de android:layout_gravity="right" .

La première affecte la position du texte lui-même dans la vue, donc si vous voulez qu'il soit aligné à droite, alors layout_width= devrait être soit "fill_parent" o "match_parent" .

La seconde affecte la position de la vue à l'intérieur de son parent, en d'autres termes, elle aligne l'objet lui-même (boîte d'édition ou vue de texte) à l'intérieur de la vue parent.

93voto

Paulo Roberto Points 634

La meilleure solution est celle qui est la plus simple, et celle qui modifie le moins le comportement de votre code. .

Et si vous pouviez résoudre ce problème seulement avec 2 propriétés sur votre TextView ?

Au lieu de devoir changer votre LinearLayout Des propriétés qui peuvent peut-être modifier le comportement de LinearLayout des enfants ?

En utilisant cette méthode, vous n'avez pas besoin de modifier LinearLayout et son comportement, il vous suffit d'ajouter les deux propriétés suivantes à votre cible TextView :

android:gravity="right"
android:textAlignment="gravity"

Qu'est-ce qui serait mieux de changer seulement votre cible pour résoudre votre solution au lieu d'avoir une chance de causer un autre problème dans le futur, en modifiant votre père cible ? pensez-y :)

0 votes

Je reçois une erreur disant qu'aucun identifiant de ressource n'a été trouvé pour la ressource 'textAlignment' dans le paquet Android.

0 votes

Vous avez la certitude d'accéder à une TextView propriétés ? - Vous pouvez vérifier la propriété de la référence ici : developer.Android.com/reference/Android/view/

4 votes

TextAlignment a été ajouté au niveau 17 de l'API (Android 4.2). Votre émulateur/appareil devra fonctionner avec la version 4.2+ pour que cela fonctionne.

20voto

rogerstone Points 1723

android:layout_gravity est utilisé pour aligner la vue du texte par rapport à la disposition parent. android:gravity est utilisé pour aligner le texte à l'intérieur de la vue texte.

Êtes-vous sûr d'essayer d'aligner le texte à l'intérieur de la vue de texte vers la droite ou voulez-vous déplacer la vue de texte elle-même vers la droite par rapport à la disposition parent ou essayez-vous d'obtenir les deux ?

0 votes

J'essaie d'aligner le texte dans la vue texte vers la droite.

8voto

Prabuddha Points 37089

Assurez-vous que vous n'utilisez pas android:layout_width="wrap_content" Si c'est le cas, il ne sera pas en mesure de définir la gravité parce que vous n'avez pas assez d'espace pour aligner le texte. Utilisez plutôt android:layout_width="fill_parent"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X