Android automatyczne przewijanie w poziomie TextView
Próbuję zaimplementować jeden wiersz widoku tekstu, który będzie się przewijał automatycznie. Ale niestety nie mogę zmusić go do pracy. AutoScrollTextView jest zadeklarowana wewnątrz LinearLayout (szerokość i wysokość = fill_parent). Klasa w zasadzie używa procedury obsługi, która wywołuje samą siebie, aby przewijać o określoną wartość. Uprościłem kod, aby pokazywał tylko widok tekstu, który powinien przewijać 5 pikseli co sekundę.
Dane wyjściowe dziennika są poprawne, metoda getScrollX () zwraca odpowiednią pozycję scrollX.
Jeśli nie wywołam metody
requestLayout (), nic nie zostanie narysowane.
invalidate ()nie działa.
Czy ktoś ma wskazówkę?
public class AutoScrollTextView extends TextView { public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setSingleLine();
setEllipsize(null);
setText("Single-line text view that scrolls automatically if the text is too long to fit in the widget");
}// begin to scroll the text from the original position
public void startScrolling() {
scrollHandler.sendEmptyMessage(0);
} private Handler scrollHandler = new Handler() {
private static final int REFRESH_INTERVAL = 1000; public void handleMessage(Message msg) {
scrollBy(5, 0);
requestLayout();
Log.debug("Scrolled to " + getScrollX() + " px");
sendEmptyMessageDelayed(0, REFRESH_INTERVAL);
}
};
}
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
W swoim kodzie użyj również:
[Odpowiedź zredagowana na podstawie komentarzy]
Anonimowy użytkownik
Potwierdzenie od:
Musimy zainstalować
co ostatecznie doprowadziło mnie do pracy
Anonimowy użytkownik
Potwierdzenie od:
I należy wybrać :
Na przykład kodem w .
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: