Добавление точек в конце Textview (...), точки не отображаются - PullRequest
2 голосов
/ 18 мая 2019

Всякий раз, когда текст (который я установил программно из действия) длиннее, чем n символов, я хочу обрезать и ограничивать длину текста и добавлять 3 точки в конце textview. Первоначально для текста задано пустое значение (всего лишь "") в xml, а позднее - из действия.

Вот как я пытался:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:maxLength="10"
    android:ellipsize="end"
    android:maxLines="1"/>

Так выглядит случайный текст, и я установил максимальную длину в 10 символов:

enter image description here

Я ожидал, что он будет выглядеть как jrkfkgkglg..., потому что текст jrkfkgkglggfgirng, но точки не добавляются в конце. Есть предложения?

Ответы [ 3 ]

2 голосов
/ 18 мая 2019

Чтобы это работало, ваша ширина должна быть match_parent или иметь любой другой размер, определенный вместо wrap_content.

1 голос
/ 18 мая 2019

Для этого вы должны удалить атрибут

android: maxLines = "1"

и добавить новый атрибут

android: singleLine = "true"

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

1 голос
/ 18 мая 2019

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

Вы можете снять ограничение android:maxLength="10" и программно проверить свой текст из своего кода, что-то вроде этого:

if (yourText.length() > 10) {
    yourText = yourText.substring(0, 9); //get the first 10 chars
    textView.setText(yourText + "..."); //display 
} else {
    textView.setText(original string < 10chars);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...