Je peux utiliser android:gravity="bottom|center_horizontal"
en xml sur une visualisation de texte pour obtenir les résultats souhaités, mais je dois le faire par programme. Ma vue textuelle est à l'intérieur d'un tablerow
si cela compte dans un relativelayout
.
J'ai essayé:
LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);
Mais si je comprends bien, cela s'appliquerait à la tablerow
, pas à la vue de texte?
it.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM
or
et nonand
?! ??!Cela centrera le texte dans une vue texte:
la source
LayoutParams
n'est pas défini ici et peut varier, donc il ne se compilera pas. Vous devez connaître une disposition parent (par exemple,LinearLayout
) et l'écrire ici.Nous pouvons définir la gravité de la mise en page sur n'importe quelle vue comme ci-dessous
Cela équivaut au code xml ci-dessous
la source
Vous devez utiliser
textView.setGravity(Gravity.CENTER_HORIZONTAL);
.N'oubliez pas qu'en utilisant
ne fonctionnera pas. Cela définira la gravité du widget et non de son texte.
la source
Utilisez ce code
la source
Cela définira la gravité de votre affichage de texte.
la source
Résolu cela en faisant quelques choses, en obtenant d'abord le
height
de monTextView
et en le plongeant par le textesize
pour obtenir le nombre total de lignes possible avec leTextView
.Après avoir obtenu cette valeur, vous devez définir votre
TextView
maxLines
sur cette nouvelle valeur.Réglez le
Gravity
surBottom
une fois que le nombre maximum de lignes a été dépassé et il défilera automatiquement.Pour que cela fonctionne correctement, vous devez utiliser
append()
leTextView
, SisetText()
cela ne fonctionne pas.L'avantage de cette méthode est qu'elle peut être utilisée dynamiquement indépendamment
height
du vôtreTextView
et du textesize
. Si vous décidez d'apporter des modifications à votre mise en page, ce code fonctionnerait toujours.la source