2017-03-08 2 views
0

J'ai cherché partout dans Google pour cette réponse. J'ai essayé de définir un TextView pour l'aligner avec la droite de mon LinearLayout vertical. Toutefois, la définition des paramètres et l'utilisation de ...Définir TextView à droite de LinearLayout (Vertical)

params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 

ne fonctionne pas. Je suis presque certain que c'est parce que j'ai défini la largeur à WRAP_CONTENT.

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

Le problème est, si je définir la largeur de MATCH_PARENT alors (comme prévu) la couleur de fond de la TextView remplit toute la largeur de l'écran. Je n'essaie pas de mettre la gravité du texte à droite. J'essaye d'aligner le TextView entier avec la droite du LinearLayout tout en gardant la largeur égale à la taille du texte à l'intérieur.

Quelqu'un peut-il aider ???

+1

où est votre LinearLayout vertical. ? –

+0

Veuillez montrer le code XML ou Java qui crée la mise en page. –

Répondre

0

RelativeLayout.ALIGN_PARENT_RIGHT ne fonctionne pas parce qu'il est une règle pour RelativeLayout, non pas pour LinearLayout

votre LinearLayout est En supposant que la valeur match_parent alors vous devez appliquer la gravité. Il suffit d'ajouter ce qui suit à la TextView

android:layout_gravity="end" 

L'équivalent programmatique étant d'ajuster la mise en page params sur le TextView:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 
params.gravity = Gravity.END; //despite the confusing name, this is on Layout params and this is layout_gravity 
params.weight = 1.0f; 
textView.setLayoutParams(params); 

Remarque: Mise en page par gravité et Vue sur la gravité sont des choses différentes - ensembles mise en page par gravité la position des vues dans sa disposition, alors que la gravité définit la gravité pour le contenu dans la vue

+0

Ça a marché! Merci beaucoup! – drewvy22

+0

Super, content que ça a aidé. Les remerciements sont appréciés mais, comme vous êtes un nouvel utilisateur, je vais juste dire quand vous voulez remercier quelqu'un sur SO, il est prévu que vous le montriez en votant et/ou en acceptant leur réponse –

+1

J'ai essayé d'upvote et je ne peux pas en raison de ma réputation mais je viens de remarquer que je peux accepter la réponse comme vous l'avez dit! Merci beaucoup! – drewvy22