2013-08-27 13 views
7

Chciałbym uniknąć łamania linii w specyficznych częściach ciągu.Android: unikaj łamania linii w częściach TextView String

Powiedzmy mamy ten ciąg znaków:

Speed (m/s) 

Ideałem byłoby albo nie skacze w ogóle i posiadające pełną String w jednej linii, a jeśli potrzebna jest skok, w ten sposób:

Speed 
(m/s) 

Co chcę uniknąć są rzeczą tak:

Speed (m/ 
s) 

Jakieś pomysły?

+1

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

Odpowiedz

0

Spróbuj (tylko pomysł, nie sprawdzone)

  1. Oblicz szerokość TextView z View.getMeasuredWidth().
  2. Oblicz szerokość String z Paint.measureText().
  3. Porównaj szerokości i dodaj "\ n" między "Prędkością" i "(m/s)", jeśli jest to wymagane.
+0

Szukałem raczej ogólnego przypadku ... jeśli ma kilka linii i reguł jednocześnie ... – apascual

8

Spróbuj użyć non-breaking space między prędkością a "(m/s)". Znak Unicode no-break space (\u00A0) powinien działać dla TextView.

+4

Problem polega na tym, że nie ma spacji w "(m/s)", ale Android dzieli ją ... – apascual

+1

Od "(m/s)" nie jest słowem, android nie może owijać go automatycznie. Ten problem wygląda trudniej niż w przypadku zagadnień związanych z przestrzenią i słowem. Tutaj jest pytanie podobne do twojego, może możesz odnieść odpowiedź, która jest akceptowana. Zastępują 'TextView' z kilkoma modyfikacjami. [Podobny link do pytania] (http://stackoverflow.com/questions/15981941/how-to-control-when-textview-sends-string-to-new-line?rq=1) – YX1990