Android:TextView автоматически усекает и заменяет последние 3 символа строки
Вопрос
Если 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);