2009-11-09 17 views
10

Mam widok tekstowy. Chcę, żeby była elipsoidowana, jeśli jest dłuższa niż jego dostępna szerokość. To nie działa, jeśli ciąg wejściowy nie ma spacji ... czy ktoś może podać przykład tego działającego? Próbowałem różnych kombinacji:Nie można uzyskać wielokropka do pracy z Androidem

SingleLine = "true" maxLines = "1" scrollHorizontally = "false"

żaden z nich żadnego efektu. Ponownie, jeśli podam ciąg, który nie zawiera spacji, to wielokropka pojawia się poprawnie. czego mi brakuje? Próbowałem tego 1.5, 1.6, 2.0, cały ten sam problem.

Dzięki

+0

Szybkie i hackowe rozwiązanie może polegać na wyświetlaniu ciągu znaków za pomocą spacji nierozdzielających zamiast zwykłych spacji. –

Odpowiedz

12

Ellipsize jest uszkodzony (iść vote on the bug report, zwłaszcza że twierdzą oni, że nie jest powtarzalny), więc trzeba użyć niewielką hack. Użyj:

android:inputType="text" 
android:maxLines="1" 

na wszystko, co chcesz elipsować. Ponadto nie używaj singleLine, jest to przestarzałe od wersji 1.5.

+0

Czy [głosowanie nad zgłoszeniem błędu] miało być linkiem? –

+0

Naprawiłem ... :) –

+0

Dzięki za ten link. Działa z komentarzem nr 9. – bgs

2

Spróbuj z:

textView.setSingleLine(); 
TruncateAt truncate = TruncateAt.END; 
textView.setEllipsize(truncate); 
11

była to jedyna kombinacja, że ​​mogę dostać się do pracy na SDK ver4:

android:ellipsize="end" 
android:singleLine="true" 

(Tak wiem, że mówi to przestarzała, ale ja zostaję bez wybór)

+1

To jest jedyne combo, które działało dla mnie też –

0

Proste rozwiązanie.

int limit = 9; 
if (str.length() > limit) { 
    textView.setText(str.substring(0, limit)+"..."); 
} else { 
    textView.setText(str); 
} 
+1

Żadna kombinacja właściwości xml nie zadziałała. Aby zaoszczędzić czas i poznać w 100%, co dostanę na jakimkolwiek systemie, z którym się zetknąłem. Dzięki. –

+0

Podsumowując ogólnie doświadczenie związane z programowaniem systemu Android – menawi

Powiązane problemy