2010-10-17 6 views
2

Je mets à jour le html dans un webView en utilisant loadData() suivi d'un reload(). Je reçois les nouvelles données à afficher mais le défilement de la page n'a pas été mis à jour. Je veux garder la vue de la page en bas. Je peux attendre longtemps et ça ne se met toujours pas à jour. Une fois que je clique sur le webVoir les barres de défilement s'ajuster et je peux glisser vers le bas de la page et voir le nouveau texte. Ce que j'ai essayé: - plusieurs paramètres et appels onPageFinished(). Aucun n'a fonctionné parce que le getContentHeight() n'a pas encore changé. J'ai également essayé de scrollTo (100 + getContentHeight) et cela ne fonctionne pas. - pageDown (true)webview loaddata paramètre de défilement ne pas mettre à jour jusqu'à ce que cliqué

  • appelant requestLayout() après reload()

  • browser.requestFocusFromTouch() - toujours pas bon, pensant que je pouvais simuler mon clic.

  • en ajoutant quelques étiquettes br. Cela a fonctionné un peu, mais le nombre de br doit égaler le nombre de lignes du nouveau texte. Puisque le nombre de nouvelles lignes ne peut pas être déterminé exactement en fonction de l'orientation et des variables d'écran, ce n'est pas une bonne solution. Des idées? TIA

Répondre

4

Si vous voulez que le WebView à défilée au fond après sa fin du chargement, je l'ai trouvé que je devais utiliser pageDown (true) dans onNewPicture. (Je crois que l'événement est tiré lorsqu'une vue est dessin terminé.)

Ainsi, le code ressemble à

webView.setPictureListener(new WebView.PictureListener() { 

     public void onNewPicture(WebView view, Picture picture) { 
      webView.pageDown(true); 
     } 
    } 

En utilisant pageDown a le malheureux problème de défilement visiblement la page; J'ai des problèmes pour trouver un autre moyen de sauter au fond du webView, j'ai trouvé cette question en cherchant une solution! (Je n'ai pas encore essayé d'atteindre WebView et d'utiliser javascript.)

+0

Je dois avoir un autre problème. Je vois la page scintiller pendant la pageDown (Yeh! Je n'ai jamais eu ça avant), mais ça va à la fin de la page d'origine. Le contentHeight n'est pas mis à jour donc il va à une fausse fin de page. Sheeesh! – Jim

+0

Je marque ceci comme étant répondu depuis que pageDown (true) est déclenchée pour moi. J'ai posé une autre question sur comment obtenir contentHeight à recalculer. – Jim