2013-08-27 6 views
7

Vorrei evitare di rompere le linee in parti specifiche della stringa.Android: evitare l'interruzione di riga in parti String TextView

Diciamo che abbiamo questo String:

Speed (m/s) 

L'ideale sarebbe o non saltare a tutti e avere il pieno String in una linea, o, se è necessario il salto, in questo modo:

Speed 
(m/s) 

Quello che voglio evitare sono cosa come questa:

Speed (m/ 
s) 

Tutte le idee?

+1

http://stackoverflow.com/questions/6134457/how-to-prevent-edittext-from-breaking-a-line-after-punctuation – laalto

risposta

0

Prova questa (solo un'idea, non testato):

  1. calcolare la larghezza del TextView con View.getMeasuredWidth().
  2. Calcolare la larghezza di String con Paint.measureText().
  3. Confrontare le larghezze e aggiungere "\ n" tra "Velocità" e "(m/s)" se necessario.
+0

Stavo cercando un caso generale ... Potrei ottenere difficile se hai più linee e regole contemporaneamente ... – apascual

8

Provare a utilizzare non-breaking space tra la velocità e "(m/s)". Il carattere Unicode no-break space (\u00A0) dovrebbe funzionare per TextView.

+4

Il problema qui è che non c'è spazio in "(m/s)", ma Android lo sta dividendo ... – apascual

+1

Poiché "(m/s)" non è una parola, Android non può avvolgerlo automaticamente. Questo problema sembra più complesso dei problemi di spazio e di ritorno a capo. Ecco una domanda che è simile alla tua, forse puoi riferirti alla risposta accettata. Sovrascrivono 'TextView' con alcune modifiche. [Link della domanda simile] (http://stackoverflow.com/questions/15981941/how-to-control-when-textview-sends-string-to-new-line?rq=1) – YX1990