можно ли добавить
в TextView? Кто-нибудь добился подобной функциональности?
Я хочу, чтобы в TextView было неразрывное пространство.
TextView
уважает неразрывный пробел Unicode ( \u00A0
), что было бы более простым / легким решением, чем HTML.
\u00A0
это неразрывный пробел,\u0020
это не неразрывный пробелисточник
Можно использовать,
чтобы иметь читаемое решение. Включение\u00A0
или 
или 
/ 
в текст на самом деле не дает много информации для читателя исходного кода (или переводчика в этом отношении), если вы не помните шестнадцатеричные коды. Вот способ использовать названный объект вstrings.xml
:Это создаст недостающую декларацию. Исходное объявление HTML можно найти в https://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent, на которое есть ссылки в обычных XHTML DTD . Все это работает, потому что синтаксический анализатор XML читает их и заменяет при загрузке файла, поэтому объект не будет присутствовать в результирующих скомпилированных ресурсах.
вCharSequence
ресурсах Android Text ( )Устройство и предварительный просмотр (предварительный просмотр не распознает HTML)
в строковых (отформатированных) ресурсах AndroidЗатем в коде:
Устройство и предварительный просмотр (предварительный просмотр не распознает объекты, а строки Java - это буквальный текст!)
Дальнейшие хитрости
Это всего лишь примеры использования сущностей DTD, используйте их по своему усмотрению.
Оба они помогают выделить:
источник
’
символ, создавать апострофные объекты не нужно.<string name="original">Don’t wrap %1$s</string>
работает как положено.'
VS’
. У Android нет проблем с более причудливыми символами Unicode, но у него есть проблема с ASCII 0x27, которая требует экранирования. Сущность просто удобна, я просто поместил ее туда, чтобы продемонстрировать, где она может быть полезна.
строк имеет большее значение для переводчиков, чем юникод,\u00A0
con
иparam1
в том же файле.TextView должен уважать неразрывное пространство
или
источник
Одна уникальная ситуация, с которой я столкнулся, заключалась в добавлении неразрывного пробела к строковому ресурсу, который принимал
String.format
параметры.Я попытался просто скопировать и вставить неразрывный пробел в строку, и после компиляции он был заменен обычным старым пробелом.
Удаление formatted = "false" , нумерация аргументов формата и использование обратной косой черты сработали для меня:
источник
Это сработало для меня:
источник
Это пример использования nbsp в TextView
<string name="text">Example:\u00A0</string>
источник