Фон
У меня есть строка ввода, которую мне нужно показать в ограниченном количестве строк (1 в данном случае, но может измениться) и при уведомлении. Текст может содержать символы новой строки ("\ n"), поэтому, если он ограничен, он не должен показывать строки ниже.
Проблема
Предположим, у вас есть строка, которую вы хотите для отображения в TextView, но в этой строке есть несколько новых строк.
Пример:
textView.text = "Hello\n\nWorld"
Если вы установите android:maxLines="1"
и / или android:singleLine="true"
, на самом деле все помещается в одна строка, но она просто заменит новые строки пробелами:
Не только это, но и попытка установить текст в уведомлении, Я вижу точно такое же поведение, но оно не должно быть ограничено количеством строк. Там я также вижу «Hello World» ...
Вот его фрагмент:
val builder = ...
builder.setSmallIcon(...)
builder.color = ...
builder.setContentTitle(...)
.setTicker(...).setContentText(theProblematicText)
Что я пробовал
Я пробовал различные атрибуты для TextView, но я не смог найти тот, который это исправит.
Я знаю, что мог бы, если бы захотел, просто проанализировать введенный текст и обрезать его, когда я достигну первого "\ n", но это не так хорошее решение, потому что оно обрабатывает только ограничение в одну строку, а также не решает проблему с уведомлениями.
Вопросы
- Почему Android заменяет эти символы на простые пространства?
- Как можно избежать этого как для TextView, так и для уведомлений?
- Как я могу заставить TextView отображать только первые X строк входного текста? Я действительно должен разобрать это?