14

Tengo una Appwidget mostrando días hasta que un evento como:Cómo influir en salto de línea en Android Textview

nombre_evento (-231 días)

Si es posible quiero mostrar esta cadena en una línea . Si el nombre del evento es demasiado largo, quiero mostrar el término completo entre llaves en una nueva línea. Así que es como:

longeventname
(-231 días)

en lugar de:

longeventname (-231
días)

(o algo similar)

¿Hay alguna manera de archivar esto? ¿Puedo hacer (-231 días) "atómico"?

string.getLength no funcionará, ya que el tamaño del widget variará según el dispositivo.

Respuesta

24

Puede usar non-breaking space entre el número y los "días".

Eso es   para una cadena en XML, o \u00A0 para una cadena en código Java.

+0

¡Perfecto! Eso es exactamente lo que estaba buscando. "\ u00A0" funciona perfecto en Textview. –

+10

Para las personas que hacen cosas similares, aquí hay dos consejos útiles: primero, también hay un signo de no interrupción menos (\ u2011) y, en segundo lugar, puede usar un espacio de ancho cero http://en.wikipedia.org/wiki/Zero-width_space para un posible salto de línea dentro de una palabra. –

+1

Solo una nota: parece que esto está funcionando en la mayoría de los casos. Sin embargo, incluso un espacio sin interrupción se romperá un poco si está precedido por un período (no hay tristemente un período sin interrupción). Así que esta no es una opción si está trabajando con abreviaturas como "P. Howard" – IBoS