2010-11-24 4 views
0

ist es möglich, eine Verzögerung einzustellen, bei der die Bildlaufleiste auf der rechten Seite erscheint? Die Idee ist, dass, wenn der Benutzer mit dem Scrollen beginnt, die Bildlaufleiste nicht sofort angezeigt wird, sondern wenn der Benutzer lange genug scrollt.Zeige Bildlaufleiste nach gegebener Verzögerung

Ich suchte jetzt nach einer Zeit und fand nur eine Getter-Methode getScrollDefaultDelay(), die die Zeit in ms erhält, wenn die Bildlaufleiste verschwindet. Wie kann ich die Verzögerung in meinem Fall kontrollieren?

freundlichen Grüßen

Antwort

0

Deaktivieren Sie die Bildlaufleiste setVerticalScrollBarEnabled und hören für „scroll changes“, entweder durch onScrollChanged überschrieben oder durch irgendeine Art von Scroll-Hörer zu definieren. Wenn die Benutzer scrollen, senden Sie eine verzögerte Nachricht an eine Handler. Wenn der Benutzer erneut scrollt, entfernen Sie die Nachricht und senden Sie eine neue Nachricht mit der gleichen Verzögerung. Wenn die Nachricht ausgeführt wird, zeigen Sie die Bildlaufleiste erneut an. Wenn er erneut scrollt, verstecke ihn erneut. Spülen und wiederholen.

Sie werden wahrscheinlich das standardmäßige Scrollbar-Fading deaktivieren wollen, leider ist das nur möglich, beginnend mit API Version 5, unter Verwendung von setScrollbarFadingEnabled.

+0

Interessanter Ansatz. Ich habe auch die setVerticalScrollBarEnabled gefunden und die Bildlaufleiste deaktiviert, obwohl ich nicht daran dachte, onScrollChanged-Ereignisse zu hören und sie manuell zu aktivieren/deaktivieren. Danke Timo für das Teilen, weiter so! – Devdroid

Verwandte Themen