Я могу использовать android:gravity="bottom|center_horizontal"
в xml текстовое представление, чтобы получить желаемые результаты, но мне нужно сделать это программно. Мой текстовый вид внутри, tablerow
если это имеет значение в relativelayout
.
Я пытался:
LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);
Но если я правильно понимаю, это применимо к tablerow
тексту, а не к тексту?
it.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM
or
а неand
?! ??!Это будет центрировать текст в текстовом представлении:
источник
LayoutParams
здесь не определен и может варьироваться, поэтому он не будет компилироваться. Вы должны знать родительский макет (например,LinearLayout
) и написать его здесь.Мы можем установить гравитацию макета на любом виде, как показано ниже.
Это эквивалентно приведенному ниже XML-коду
источник
Вы должны использовать
textView.setGravity(Gravity.CENTER_HORIZONTAL);
.Помните, что используя
не сработает Это установит гравитацию для виджета, а не для его текста.
источник
Используйте этот код
источник
Это установит серьезность вашего текстового обзора.
источник
Решил эту проблему, выполнив несколько вещей, сначала получив
height
моиTextView
и погрузив их по тексту,size
чтобы получить общее количество строк, возможных с помощьюTextView
.После того, как вы получите это значение, вам нужно установить
TextView
maxLines
это новое значение.Установите
Gravity
наBottom
один раз максимальное количество линий было превышено , и это будет прокручиваться автоматически.Для того , чтобы это работало правильно, вы должны использовать
append()
вTextView
, еслиsetText()
это не будет работать.Преимущество этого метода заключается в том, что его можно использовать динамически, независимо
height
от вашегоTextView
текста и текстаsize
. Если вы решите внести изменения в свой макет, этот код все равно будет работать.источник