2012-11-19 31 views
6

Próbuję przewijać webview programowo, ale mam pewne problemy. webView.setScrollY() nie daje mi animacji, a webView.flingScroll() zachowuje się inaczej w zależności od długości strony. Jaki jest najlepszy sposób na zrobienie tego?Android WebView smooth scroll

Odpowiedz

1

Możesz użyć metody webView.scrollTo (x, y). Jednak będzie to przewijane natychmiast.

Nie ma żadnej dostępnej metody dla WebView do przewijania z animacją. Jeśli naprawdę musisz to zrobić, umieść WebView w ScrollView, a następnie możesz użyć np. smoothScrollBy itp

+0

zagnieżdżenia przewijalnych widoki nie jest najlepszym pomysłem, daje wszelkiego rodzaju kłopoty, jeśli nie obsługiwać to poprawnie – user1806772

7

można przewijać za pomocą ObjectAnimator dostarczając aktualną pozycję WebView jak tego API 11+

ObjectAnimator anim = ObjectAnimator.ofInt(webView, "scrollY", webView.getScrollPositionY(), 0); 
anim.setDuration(500).start(); 
+2

Świetna odpowiedź, zadziałała dla mnie. Jedyną rzeczą jest to, że nie ma metody jak getScrollPositionY(), powinieneś użyć webView.getScrollY() – Rosenpin