Подтвердить что ты не робот

Android TextView с несколькими линиями

Я хочу TextView, который должен быть разбит на 4 строки. Например,

Vishal Vyas
  Having
   342
Reputation

Обратите внимание, что сила тяжести должна быть center_horizontal

Я пробовал следующее:

<TextView
    android:gravity="center_horizontal"
    android:id="@+id/lblUserRep"
    android:layout_width="70dp"
    android:layout_height="wrap_content"
    android:lines="4"
    android:maxLines="4"
    android:text="VishalVyas Having 342 Reputation" >
</TextView>

Это работает! но производит следующий вывод:

VishalVyas
  Having
   342
Reputation

Проблемы:

  • Это не работает с пространством между словами Vishal и Vyas.
  • android:layout_width="70dp" кодируется и может быть любое имя с n числом символов вместо VishalVyas.

Пожалуйста, совет.

Добавлено: Было бы хорошо, если мне нужно написать пользовательский TextView для достижения этого, но мне потребуются некоторые рекомендации.

Спасибо заранее.

4b9b3361

Ответ 1

Я думаю, что это обертывание, потому что "Vishal Vyas" выходит за пределы 70dp. Вместо этого сделайте wrap_content по ширине и используйте символы новой строки для строк вместо обертывания (т.е. "Vishal Vyas\n342\nReputation" )

Ответ 2

Вы должны иметь возможность вставить символ новой строки \n, чтобы контролировать, куда идут расщепления. Как только вы это сделаете, вы можете расширить свой TextView шире, чтобы он мог вместить более длинное имя пользователя, но все равно сломался в нужном месте.

Ответ 3

android:lines="2"
android:minLines="2"
android:singleLine="false"

Даже если Android Studio предупреждает, что android:singleLine=false устарел, сохраните его, и у вас может быть количество строк, которые они хотят для своего текстового поля, в зависимости от длины их текста.

Ответ 4

Я сделал так:

Контейнер TextView:

    android:layout_width="match_parent"
    android:layout_height="match_parent"

TextView:

    android:layout_width="match_parent"
    android:layout_height="wrap_content"

Затем

Текст TextView был показан в двух строках или более...