Кто-нибудь знает, как обернуть текст в TextView на платформе Android. т.е. если текст в текстовом окне превышает длину экрана, он должен отображаться во второй строке.
Я искал и пробовал следующее:
android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"
Но никто не работает ..
Может ли кто-нибудь подсказать, как я могу это сделать.
android:inputType="textPersonName"
. Судя по всему, это было добавлено дизайнерским инструментом Android Studio. Удаление этого атрибута устранило проблему! Могут быть и другие типы ввода, предотвращающие перенос.Ответы:
Для меня эта проблема возникла только на Android <4.0
Я использовал следующие параметры:
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
Счетчик maxLines, казалось, был последней случайной частью, которая заставила меня обернуть TextView.
источник
match_parent
, что не то же самое, что увеличение высоты TextView с включением дополнительных строк.Макет ограничения
<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"/>
android:maxLines="2"
для предотвращения вертикального расширения (2 - это просто пример)android:ellipsize="end"
Ширина 0dp позволяет ограничениям влево / вправо определять ширину вашего виджета.
Установка ограничений влево / вправо устанавливает фактическую ширину вашего виджета, внутри которой будет переноситься ваш текст.
Документы по макету ограничений
источник
Для случая, когда
TextView
находится внутри aTableLayout
, решение - установить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"
но это привело к появлению лишнего пустого места в нижней части диалогового окна, в котором он был полностью.
источник
Вы должны использовать 2 параметра:
android:ellipsize="none"
: текст не обрезается по ширине textviewandroid:scrollHorizontally="false"
текст переносится на столько строк, сколько необходимоисточник
Имеет три постоянных значения
<android.support.v7.widget.AppCompatTextView android:id="@+id/textquestion" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:scrollHorizontally="false" android:text="Your Question Display Hear....Your Question Display Hear....Your Question Display Hear....Your Question Display Hear...." android:textColor="@android:color/black" android:textSize="20sp" android:textStyle="bold" app:breakStrategy="simple" />
yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);
Для получения дополнительной информации обратитесь к этой стратегии BreakStrategy
источник
Это должно решить вашу проблему:
android:layout_weight="1"
.источник
match_parent
. Не совсем то, что хотел OP.layout_weight="1"
проблема исправлена для меня. Однако моя TableRow, содержащая TextView, имеетlayout_height
определенное значение. Может быть, кому-то будет полезноХорошо, ребята, правда где-то посередине, потому что вы должны видеть проблему с точки зрения родителей и ребенка. Приведенное ниже решение работает ТОЛЬКО при режиме счетчика =
dialog
независимо от версии Android (проблем нет .. протестировал его в VD и DesireS с Android => 2.2):. Установите режим спиннера (родительский), например:
android:spinnerMode="dialog"
Задайте для свойств текстового представления (дочернего настраиваемого представления) следующие значения:
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
Надеюсь, это сработает и для вас.
источник
Установка
android:maxEms
данного значения вместе сandroid:layout_weight="1"
приведет к переносу TextView по достижении заданной длины em.источник
В Android Studio 2.2.3 под
inputType
свойством есть свойство с именемtextMultiLine
. Выбор этой опции помог мне решить аналогичную проблему. Надеюсь, это поможет.источник
Просто работал над TextView внутри макета внутри RecyclerView. Я текст получения отрезан, напр, для
Read this message
, я увидел:Read this
. Я попытался установитьandroid:maxLines="2"
TextView, но ничего не изменилось. Однакоandroid:lines="2"
закончилисьRead this
на первой строчке иmessage
на второй.источник
У меня такая же проблема. Следующее изменение заставило его работать -
android:layout_width="wrap_content"
Многоточие, maxLines или layout_weight - не имело никакого значения. Примечание. Ширина родительского элемента также устанавливается как wrap_content.
источник
Все, что вам нужно сделать, это установить ширину текстового поля .
android: layout_width = "60dp"
вы можете изменить ширину по своему усмотрению. Просто введите длинное предложение, чтобы проверить, работает ли оно так
android: text = "я хочу быть одним из инженеров-программистов мирового уровня"
источник
Попробуйте подход @ Guykun
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
Также убедитесь, что ширина родительского элемента не установлена для обтекания содержимого. Это то, чего мне не хватало.
источник
Я использую Android 2.2, и мое текстовое представление автоматически перейдет к следующей строке, если оно выходит за пределы экрана.
Если вы хотите, чтобы текст переходил на следующую строку до конца экрана, просто добавьте (просто введите свое собственное значение dp). Это будет полезно, если у вас есть изображение справа от текста.
android:layout_marginRight="52dp"
источник
Как ни странно - я создал свой TextView в коде, и он обернулся - несмотря на то, что я не устанавливал ничего, кроме стандартных вещей, - но убедитесь сами:
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); childParams.setMargins(5, 5, 5, 5); Label label = new Label(this); label.setText("This is a testing label This is a testing label This is a testing label This is a testing labelThis is a testing label This is a testing label"); label.setLayoutParams(childParams);
Как видно из определения параметров, я использую LinearLayout. Класс Label просто расширяет TextView - ничего там не делает, кроме установки размера и цвета шрифта.
При запуске в эмуляторе (уровень API 9) текст автоматически переносится на 3 строки.
источник
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
. Скорее всего, это делает упаковку, которую вы считаете «автомагической»Просто установите
layout_with
определенный размер, когда текст заполнит максимальную ширину, он будет перетекать на следующую строку, вызывая эффект переноса.<TextView android:id="@+id/segmentText" android:layout_marginTop="10dp" android:layout_below="@+id/segmentHeader" android:text="You have the option to record in one go or segments(if you swap options you will loose your current recordings)" android:layout_width="300dp" android:layout_height="wrap_content"/>
источник
Уловка заключается в ширине textView, попробуйте сделать ее выделенным числом, например:
<TextView android:layout_width="300dp" android:layout_height="wrap_content"/>
Пробовал много решений безрезультатно, пробовал:
android:ellipsize="none" android:scrollHorizontally="false"
единственное, что вызвало опцию обтекания, - это выделенная ширина
источник
Вам нужно добавить свой TextView в ScrollView примерно так:
<ScrollView android:id="@+id/SCROLL_VIEW" android:layout_height="150px" android:layout_width="fill_parent"> <TextView android:id="@+id/TEXT_VIEW" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header" /> </ScrollView>
источник