2011-08-11 11 views
6

Mam do czynienia z problemem android: ellipsize, który nie działa w TextView. Ale działa dobrze dla Androida: singleLine.android: singleLine z TextView nie jest dłuższy w "Przestarzałym"?

Słyszałem, że android: singleLine jest "przestarzałe", ale nie jest napisane w odnośniku w Android Developer.

https://developer.android.com/reference/android/widget/TextView.html#attr_android:singleLine

android: SingleLine nie jest już w "przestarzała"?

DODANO: Sam rozwiązałem ten problem.

Okazuje się, że android: scrollHorizontally = "true" atrybutu TextView nie znajduje odzwierciedlenia w pliku xml.

Próbowałem użyć metody setHorizontScrolling, działało.

*xml:* 
<TextView 
    android:id="@+id/text" 
    android:ellipsize="end" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
/> 

*code:* 
TextView textView = (TextView)findViewByID(R.id.text); 
textView.setHorizontallyScrolling(true); 

ale dodaję "android: InputType =" text”w xml jak następne, to nie działa Należy uważać

*xml:* 
<TextView 
    android:id="@+id/text" 
    **android:inputType="text"** 
    android:ellipsize="end" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
/> 
+0

wypróbuj zaktualizowaną odpowiedź ... – ngesh

+0

Przepraszam, ntc, przez pomyłkę usunąłem twoją odpowiedź. Próbowałem Androida: maxLines = "1", ale nie działało. Próbowałem używać Androida: maxLines = "1" i android: scrollHorizontally = "true", a także używam android: linie zamiast android: maxLines, ale nie działałem. – zaki

+0

Możliwy duplikat [Czy atrybut xml singleLine jest nieaktualny czy nie występuje w systemie Android?] (Http://stackoverflow.com/questions/30028697/is-the-xml-attribute-singleline-deprecated-lub-in-and-android) – bummi

Odpowiedz

0

Spróbuj także ustawienie wejścia IME na krótko.. tekst lub coś w tym stylu może zadziałać, jest wiele problemów z elipsize, które miałem w pewnym momencie i nie udało mi się rozwiązać. W moim przypadku było to głównie związane z editTexts i innymi elementami odbierającymi fokus poza zasięgiem widoku, aby Elipsize działał, konieczne jest ustawienie ostrości:

+0

dzięki DArkO, spróbowałem, ale nie mogłem rozwiązać. – zaki

+0

Cóż, niestety nie sądzę, że będziesz, jeśli cokolwiek wyjdzie na jaw. Przy okazji zakładam cały czas, że chcesz osiągnąć efekt markizy. Pamiętam, że istnieją przykłady, w których ludzie używają animacji do wykonania tej elipsy. – DArkO

+0

Wypróbuj te dwa linki, zobacz, dokąd prowadzą: http://stackoverflow.com/questions/2160619/android-ellipsize-multiline-textview, http://stackoverflow.com/questions/1827751/is-there-a-way- to-make-ellipsize-marquee-always-scroll – DArkO

0

Nie jestem pewien, czy android: SingleLine z TextView jest nolonger w „przestarzała”, ponieważ wewnątrz nieaktualnych konstruktora TextView znajduje się komentarz odnośnie do konfiguracji SingleLine ..

// jeśli ustawione, typ danych zastępuje to, co zostało ustawione przy użyciu wycofanej flagi pojedynczej linii.

singleLine =! IsMultilineInputType (inputType);

kod źródłowy: około 1156L od core/java/android/widget/TextView.java - platform/frameworks/base - Git at Google

Ponieważ Google doda komentarz mówiąc, że flaga SingleLine jest przestarzała, (choć to nie jest napisane w witrynie Developer) może tak być.

Powiązane problemy