Ich habe eine scrollview, es enthält eine textView, die textView haben viele Zeilen, in anderen Worten die textView gesamte Bildschirmgröße, wenn ich alle Zeichenfolgen in der textView sehen möchte, muss ich die Bildlaufleiste scrollen, aber ich will nicht so, ich möchte das textView oder den Bildschirm automatisch nach oben verschieben Intervall für eine gewisse Zeit, so dass keine Benutzeroperationen benötigen, wie man es realisiert Sieht aus wie E-Book-Effekt?textView automatisch nach oben bewegen
Antwort
verwenden Wenn ich richtig verstehe Sie eine wollen Auto-Scroll-TextView, wie ein Laufschrift rechts?
Sie können Labeeb Ansatz verwenden, aber das Problem besteht darin, dass Sie nicht vorher die Größe des Bildschirms kennen.
Zuerst müssen Sie eine timer in der OnCreate-Methode Ihrer Aktivität im Hintergrund ausgeführt werden. Es sollte in einem separaten Thread ausgeführt werden, um Ihre Benutzeroberfläche nicht zu blockieren. Verwenden Sie schedule(TimerTask task, long delay, long period)
, um die Verzögerung und den Zeitraum auf den gleichen Wert einzustellen. (oder es liegt nicht an dir).
Sie können die Klasse Scroller zum Initiieren und Steuern eines Bildlaufereignisses verwenden. Sie können die Scroll-Distanz, die Scroll-Startposition, die Endposition usw. festlegen. Im Idealfall sollten Sie einen Algorithmus erstellen, um den "Umfang des Scrollens" bei einer screnn Größe zu berechnen. Sie können jedoch eine feste Anzahl von Zeilen scrollen, die < wäre als die Anzahl der Zeilen, die ein kleiner 2-Zoll-Bildschirm hat (ich denke, das sind in etwa die kleineren Android-Geräte-Bildschirme).
Schließlich verwenden Sie den Timer, um die Scroll-Methode (Aufgabe), die Sie gerade erstellt haben, auszulösen.
Nicht so gut, aber funktioniert auch (irgendwie!) Sie können auch die eingebaute Androiden-Festzelt-Eigenschaft verwenden. Es kann den Wunsch-Effekt simulieren.
android:marqueeRepeatLimit="int"
android:ellipsize="marquee"
Aber es scrollt horizontal und läuft kontinuierlich.
ich weiß nicht, das ist eine gute Idee, hier Sie jede Zeile in einem separaten Textview verwenden können, und Sie können request jedes Textview in einem bestimmten Zeitintervall
keine Abstimmung: ~~ ( – Tivie