Как заставить TextView использовать как можно больше места в первой строке - PullRequest
0 голосов
/ 14 ноября 2018

У меня проблема с созданием макета чата.

Как заставить текст TextView заполнить всю область? Даже если строка непрерывная, иногда текст переходит кследующая строка.

Problem

XML с TextView:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_marginBottom="4dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
    android:id="@+id/my_msg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/message_my_shape"
    android:paddingLeft="16dp"
    android:paddingTop="8dp"
    android:paddingRight="16dp"
    android:paddingBottom="8dp"
    android:text="Hey mate,how youre doing?"
    android:textColor="#fcc7d3"
    android:textSize="16sp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"
    tools:layout_editor_absoluteY="0dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

UPD: Вы меня не совсем поняли, ребята.Заполнение должно быть там, и я не хочу ни одной строки, пожалуйста, посмотрите новые скриншоты с показанными границами макета, чтобы увидеть, о чем я говорю.Вопрос все тот же, почему текст в TextView не заполняет все доступное пространство (иногда)?enter image description here

enter image description here

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Нашли решение.

Для API 23 и выше добавьте в TextView:

android:breakStrategy="simple"

Для API <23 удалите скрытый <code>&nbsp; из текста динамически (android добавляет их автоматически).

0 голосов
/ 14 ноября 2018

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

, а не: "jhjhhjhjhhjhddfhdjfdfdfgdjdjfdj"

попробуй: Эй, приятель, как дела, как дела, дела, как дела?

android: layout_width = "match_parent" // при необходимости

0 голосов
/ 14 ноября 2018

Причина, по которой это происходит, заключается в том, что вы не указали, что у вашего TextView есть только одна строка.

Из документации:

android: maxLines

Делает TextView не более чем на столько строк.При использовании в редактируемом тексте значение атрибута inputType должно быть объединено с флагом textMultiLine для применения атрибута maxLines.

Поэтому, если вы хотите всегда использовать одну строку текста, используйте:

android:maxLines=1

Что-нибудь в вашем коде:

<TextView
    android:id="@+id/my_msg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/message_my_shape"
    android:paddingLeft="16dp"
    android:paddingTop="8dp"
    android:paddingRight="16dp"
    android:paddingBottom="8dp"
    android:text="Hey mate,how youre doing?"
    android:textColor="#fcc7d3"
    android:textSize="16sp"
    android:maxLines=1
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"
    tools:layout_editor_absoluteY="0dp" />
...