2010-09-24 12 views
0

Je souhaite ouvrir un site Web dans un WebView et le faire démarrer à une certaine distance en pixels de la page.Quand appeler ScrollTo sur un WebView

Je vois le WebView a une méthode scrollTo(), mais quand est le plus tôt que je peux appeler cela et comment puis-je détecter cela?

Je voudrais que l'utilisateur ait l'impression que la page s'ouvre à la position de défilement. Je ne veux donc pas attendre que la page entière soit chargée. S'il a attendu, l'utilisateur a peut-être déjà commencé à défiler et, une fois chargé, scrollTo() apparaîtra pour prendre le contrôle d'eux.

Merci

Répondre

4

Espérons qu'il y ait une autre façon de faire, mais pour l'instant la méthode que je me sers est de commencer une boucle de contrôle lorsque la charge est complètement chargée. Il vérifie si WebView a encore la hauteur du contenu et quand il le fait, il défile. Cela fonctionne comme je le voulais, il me semble juste un peu hackish.

EDIT: J'ai posté un very similar question and got this answer, qui fonctionne parfaitement.

+0

Cela m'a vraiment aidé ... J'ai identifié le chargement de page effectué en définissant WebViewClient personnalisé –

1

Le plus tôt vous pouvez appeler scrollTo() sur une vue semble être la méthode OnLayout().

Ainsi, par exemple faire:

protected void onLayout(boolean changed, int l, int t, int r, int b) { 
// set initial scroll to 
scrollTo(yourXpos,yourYpos); 
super.onLayout(changed, l, t, r, b); 
} 
+0

Y a-t-il un moyen d'y accéder sans avoir à sous-classer WebView? – cottonBallPaws