14

Ho un AppWidget visualizzazione di giorni fino a quando un evento come:Come influenzare interruzione di riga in Android TextView

nomeevento (-231 giorni)

Se possibile voglio visualizzare questa stringa in una sola riga . Se il nome dell'evento è troppo lungo, voglio visualizzare il termine completo in parentesi graffe in una nuova riga. Così che è come:

longeventname
(-231 giorni)

invece di:

longeventname (-231
giorni)

(o qualcosa di simile)

C'è un modo per archiviare questo? Posso fare (-231 giorni) "atomico"?

string.getLength non funziona poiché la dimensione del widget varia in base al dispositivo.

risposta

24

È possibile utilizzare uno non-breaking space tra il numero e "giorni".

Questo è   per una stringa in XML o \u00A0 per una stringa nel codice Java.

+0

Perfetto! Questo è esattamente quello che stavo cercando. "\ u00A0" funziona perfettamente in Textview. –

+10

Per le persone che fanno cose simili qui ci sono due suggerimenti utili: in primo luogo, c'è anche un meno irrisolto (\ u2011) e in secondo luogo è possibile utilizzare uno spazio a larghezza zero http://en.wikipedia.org/wiki/Zero-width_space per una possibile interruzione di riga all'interno di una parola. –

+1

Solo una nota: sembra che funzioni nella maggior parte dei casi. Tuttavia, anche uno spazio irrisolto sarà spezzato se preceduto da un punto (non c'è tristemente un periodo di non rottura). Quindi questa non è un'opzione se stai lavorando con abbreviazioni come "P. Howard" – IBoS