é possível adicionar
em TextView? Alguém alcançou uma funcionalidade semelhante?
Eu quero ter um espaço inquebrável em TextView.
TextView
respeita o caractere de espaço sem quebra Unicode ( \u00A0
), que seria uma solução mais simples / leve do que HTML.
\u00A0
é um espaço ininterrupto,\u0020
não é um espaço ininterruptofonte
É possível usar
para ter uma solução legível. Incluir\u00A0
ou 
ou 
/ 
no texto não transmite muita informação para o leitor do código-fonte (ou tradutor para esse assunto), a menos que você se lembre dos códigos hexadecimais. Esta é uma maneira de usar a entidade nomeada emstrings.xml
:Isso criará a declaração ausente. A declaração HTML original pode ser encontrada em https://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent referenciada a partir dos DTDs XHTML usuais . Tudo isso funciona, pois o analisador XML os lê e os substitui ao carregar o arquivo, de modo que a entidade não estará presente nos recursos compilados resultantes.
emCharSequence
recursos de texto Android ( )Dispositivo e visualização (a visualização não reconhece HTML)
em recursos Android String (formatados)Então, em código:
Dispositivo e visualização (a visualização não reconhece entidades e as strings Java são textos literais!)
Mais truques
Esses são apenas exemplos de uso de entidades DTD, use-os de acordo com sua preferência.
Ambos ajudam a destacar:
fonte
’
muito bem com o personagem, sem necessidade de criar entidades apóstrofes.<string name="original">Don’t wrap %1$s</string>
funciona como esperado.'
VS’
. O Android não tem problemas com caracteres Unicode mais sofisticados, mas tem um problema com ASCII 0x27, que precisa de escape. A entidade é apenas uma conveniência, só coloquei lá para demonstrar onde ela pode ser útil.
as strings é muito mais significativo para os tradutores do que o Unicode\u00A0
con
eparam1
no mesmo arquivo.O TextView deve respeitar o espaço sem quebra
ou
fonte
Uma situação única que encontrei foi adicionar um espaço ininterrupto a um recurso de string que recebia
String.format
parâmetros.Tentei simplesmente copiar e colar o caractere de espaço não separável na string e ele foi substituído por um espaço antigo regular após a compilação.
Remover formatted = "false" , numerar os args de formato e usar a notação de barra invertida funcionou para mim:
fonte
Isso funcionou para mim:
fonte
Este é um exemplo de que usar nbsp em um TextView
<string name="text">Example:\u00A0</string>
fonte