Как обернуть текст в textview в Android - PullRequest
75 голосов
/ 31 января 2011

Кто-нибудь знает, как обернуть текст в TextView на платформе Android. Т.е. если текст в textview превышает длину экрана, он должен отображаться во второй строке.

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

android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"

Но никто не работает ..

Может кто-нибудь подсказать, как мне это сделать.

Ответы [ 19 ]

49 голосов
/ 27 июня 2012

Для меня эта проблема возникла только на Android <4.0 </p>

Комбинация параметров, которые я использовал, была:

android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"

Счетчик maxLines, казалось, был случайным финальным фрагментом, сделавшим мой текстовый обзор.

30 голосов
/ 08 июня 2014

Для случая, когда TextView находится внутри TableLayout, решение состоит в том, чтобы установить android:shrinkColumns="1" на TableLayout.(Замените 1 номером столбца, в котором находится TextView, в который вы хотите заключить. (0-индексированный))

AFAICT, другие атрибуты в TextView.

не требуются.другие случаи, см. другие ответы здесь.

FWIW, я изначально получил его для работы с

 <TextView
   android:id="@+id/inventory_text"
   android:layout_width="fill_parent"
   android:layout_weight="1"
   android:width="0dp"

, но это привело к некоторому дополнительному пустому пространству в нижней части диалогаэто было все в.

22 голосов
/ 25 мая 2017

Схема ограничения

<TextView
android:id="@+id/some_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"

app:layout_constraintLeft_toLeftOf="@id/textview_above"
app:layout_constraintRight_toLeftOf="@id/button_to_right"/>
  • Убедитесь, что ширина макета равна нулю
  • определены ограничения влево / вправо
  • высота макета wrap_content позволяет расширение вверх / вниз.
  • Установите android:maxLines="2", чтобы предотвратить вертикальное расширение (например, 2)
  • Эллипсы вероятны. хорошая идея с макс линиями android:ellipsize="end"

Ширина 0dp позволяет левому / правому ограничению определять ширину вашего виджета.

Установка ограничений влево / вправо устанавливает фактическую ширину вашего виджета, в которую будет переноситься текст.

Документы с макетом ограничения

10 голосов
/ 02 марта 2011

Вы должны использовать 2 параметра:

  • android:ellipsize="none": текст не обрезается по ширине просмотра текста

  • android:scrollHorizontally="false" текстпереносит столько строк, сколько необходимо

6 голосов
/ 16 мая 2011

Это должно решить вашу проблему: android:layout_weight="1".

5 голосов
/ 27 ноября 2012

Хорошо, ребята, истина где-то посередине, потому что вы должны увидеть проблему с точки зрения родителей и ребенка.Приведенное ниже решение работает ТОЛЬКО в том случае, когда режим вращения = dialog независимо от версии Android (нет проблем ... протестировал его в VD и DesireS с Android => 2.2):

  1. . Установите режим прядильщика (родительский), например:

    android:spinnerMode="dialog"  
    
  2. Установите свойства текстового представления (дочернее настраиваемое представление) на:

    android:layout_weight="1"  
    android:ellipsize="none"  
    android:maxLines="100"  
    android:scrollHorizontally="false"
    

Я надеюсь, что это работает и для вас.

3 голосов
/ 03 марта 2017

В Android Studio 2.2.3 в свойстве inputType есть свойство с именем textMultiLine.Выбор этой опции разобрал подобную проблему для меня.Я надеюсь, что это помогает.

3 голосов
/ 11 декабря 2012

Если для android:maxEms задать указанное значение вместе с android:layout_weight="1", TextView будет перенесен, как только достигнет заданной длины ems.

2 голосов
/ 21 ноября 2017

Просто работал над TextView внутри макета внутри RecyclerView. У меня был обрезанный текст, например, для Read this message, я увидел: Read this. Я попытался установить android:maxLines="2" в TextView, но ничего не изменилось. Однако android:lines="2" привело к Read this в первой строке и message во второй.

1 голос
/ 25 февраля 2019

Вы можете использовать автоматическое изменение размера библиотеки поддержки для TextView s, отметьте мой ответ в аналогичной теме.

...