Posso usar o android:gravity="bottom|center_horizontal"
xml em uma visualização de texto para obter os resultados desejados, mas preciso fazer isso programaticamente. Minha visualização de texto está dentro de a tablerow
se isso importa em a relativelayout
.
Eu tentei:
LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);
Mas se eu entendi direito, isso seria aplicado ao tablerow
, não ao textview?
it.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM
or
e nãoand
?! ??!Isso centralizará o texto em uma exibição de texto:
fonte
LayoutParams
não é definido aqui e pode variar, portanto não será compilado. Você deve conhecer um layout pai (por exemploLinearLayout
) e escrevê-lo aqui.Podemos definir a gravidade do layout em qualquer visualização, como abaixo:
Isso é igual ao código xml abaixo
fonte
Você deveria usar
textView.setGravity(Gravity.CENTER_HORIZONTAL);
.Lembre-se que usando
não vai funcionar. Isso definirá a gravidade do widget e não do texto.
fonte
Use este código
fonte
Isso definirá a gravidade da sua visualização de texto.
fonte
Resolvi isso fazendo algumas coisas, primeiro obtendo o
height
meuTextView
e mergulhando no textosize
para obter a quantidade total de linhas possível com oTextView
.Depois de obter esse valor, você precisa definir seu
TextView
maxLines
valor para esse novo valor.Defina
Gravity
comoBottom
assim que a quantidade máxima de linhas for excedida e ela rolará para baixo automaticamente.Para que isso funcione corretamente, você deve usar
append()
o comandoTextView
Se vocêsetText()
não funcionar.O benefício desse método é que ele pode ser usado dinamicamente, independentemente
height
do seuTextView
e do textosize
. Se você decidir fazer modificações no seu layout, esse código ainda funcionará.fonte