14

Mam Appwidget wyświetlania dni, aż takiego wydarzenia:Jak wpływać linebreak w Android TextView

EventName (-231 dni)

Jeśli to możliwe chciałbym wyświetlić ten ciąg w jednej linii . Jeśli nazwa zdarzenia jest zbyt długa, chcę wyświetlić cały termin w nawiasach klamrowych w nowym wierszu. Tak, że to jest jak:

longeventname
(-231 dni)

zamiast:

longeventname (-231
dni)

(lub coś podobnego)

Czy można to zarchiwizować? Czy mogę dokonać (-231 dni) "atomowej"?

Funkcja string.getLength nie będzie działać, ponieważ rozmiar widgetu zależy od urządzenia.

Odpowiedz

24

Można użyć wartości non-breaking space między liczbą a "dniami".

To jest   dla ciągu w XML lub \u00A0 dla ciągu znaków w kodzie Java.

+0

Idealny! To dokładnie to, czego szukałem. "\ u00A0" działa idealnie w widoku tekstowym. –

+10

Dla ludzi robiących podobne rzeczy są tu dwie przydatne wskazówki: Po pierwsze, istnieje także nieodbijająca się wartość minus (\ u2011), a po drugie można użyć przestrzeni o zerowej szerokości http://en.wikipedia.org/wiki/Zero-width_space dla możliwego podziału linii w słowie. –

+1

Uwaga: wygląda na to, że działa w większości przypadków. Jednak nawet niezłamana przestrzeń zostanie przerwana, jeśli poprzedza ją pewien okres (niestety nie ma czegoś takiego jak okres nierozszyrania). Więc nie jest to możliwe, jeśli pracujesz z skrótami takimi jak "P. Howard" – IBoS