2016-07-16 9 views
2

Ich habe ein TextView auf einem Layout mit einer festen Breite konfiguriert und auf eine einzige Zeile eingestellt. Die text -Eigenschaft wird auf eine Zeichenfolge festgelegt, für die viel mehr horizontaler Speicherplatz als für die Breite von TextView angezeigt wird. Die Benutzeroberfläche ermöglicht das einfache Scrollen des Textes nach links und rechts, so dass ein beliebiger Teil der Zeichenfolge in der Ansicht angezeigt werden kann.Ist es möglich, TextView Scrolled Position abzufragen?

Ich möchte kleine Marker Grafiken rechts und links von der Textansicht platzieren, um zu zeigen, dass der Text auf beiden Seiten der Ansicht über die Grenzen gescrollt ist. Wie kann ich TextView abfragen, um festzustellen, ob die Textzeichenfolge über den linken oder rechten Rand hinausgeht?

Antwort

2

Obwohl ich es vorher noch nicht benutzt habe, schau dir getMovementMethod() im TextView an. Sie sollten Zugriff auf Scrolling-Ereignisse über die MovementMethod erhalten können.

Nach der Android-Dokumentation für MovementMethod:

Bietet Cursorpositionierung, Scrollen und Textauswahl-Funktionalität in einem Textview.

Die TextView-Delegierten behandeln die wichtigsten Ereignisse, Trackball-Bewegungen und berührt die Bewegungsmethode für Zwecke der Inhaltsnavigation. Das Framework wählt automatisch eine geeignete Bewegungsmethode basierend auf dem Inhalt der Textansicht aus.

könnten Sie versuchen ScrollingMovementMethod auszufahren und dann gegen Ihre Textview Einstellung, wie:

MyScrollingMovementMethod movementMethod = new MyScrollingMovementMethod(); 
mTextView.setMovementMethod(movementMethod); 

Und dann überschreiben die onTouchEvent Methode von MyScrollingMovementMethod.

Aber Sie sollten wahrscheinlich versuchen, TextView zu erweitern, um die Scroll-Länge manuell zu berechnen. Überprüfen Sie diese Antwort hier: https://stackoverflow.com/a/19827071/1738090

Verwandte Themen