Android:TextView автоматически усекает и заменяет последние 3 символа строки

StackOverflow https://stackoverflow.com/questions/1666736

  •  13-09-2019
  •  | 
  •  

Вопрос

Если a String длиннее, чем у TextViewпо ширине он автоматически переносится на следующую строку.Я могу избежать этого, используя android:singleLine (устарело) или установив android:inputType="text".Что мне нужно сейчас, так это что-то, что заменяет последние 3 символа моего String с помощью "...".Поскольку я не использую моноширинный шрифт, он всегда будет отличаться в зависимости от букв, используемых в моем String.Итак, мне интересно, каков наилучший способ получить последние 3 символа строки в TextView и замените их.Возможно, в платформе Android уже что-то реализовано, поскольку это, должно быть, распространенная проблема.

Это было полезно?

Решение

Вы должны иметь возможность использовать свойство "ellipsize" текстового представления:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text_mytext"
    android:ellipsize="end"
    android:maxLines="1"
/>

Вам также может потребоваться применить значения силы тяжести и к макету;Иногда я видел "автоматически растягивающиеся" виды без них.

Другие советы

Нашел интересный способ решения этой проблемы.

maxLines=1
ellipsize=end
scrollHorizontally=true

Хитрость заключается в последнем утверждении о горизонтальной прокрутке ....зацени это.Это, по крайней мере, работает на версии v2.2.

Программно вы можете использовать:

TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top