Android: Obtenir la position de défilement d'une WebView
Je suis nouveau sur Android.
Je voudrais tout simplement savoir où sur une page que l'utilisateur ait défilé. Quand un certain point sur la page web s'affiche en bas de l'écran, je veux déclencher un événement. Mais ce code provoque une exception. Je sais que WebView hérite getScrollY() de la Vue. Je ne suis pas à la mettre en œuvre correctement?
Merci d'avance.
public class Scroll extends Activity {
public WebView webview;
public float yPos;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("file:///android_asset/Scroll.html");
}
public boolean onTouchEvent(final MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_MOVE) {
yPos = webview.getScrollY();
Log.v("Scroll", "yPos = " + yPos);
}
return false;
}
}
OriginalL'auteur Dave | 2010-03-16
Vous devez vous connecter pour publier un commentaire.
Et l'exception est?
Voici une remarque sur la WebView des hauteurs de l'un de mes apps:
En fait j'ai trouvé que dans la ligne "yPos = webview.getScrollY()" , le "webview" la variable est nulle, même si dans la méthode onCreate, "WebView webview = new WebView(this);" travaille. Le "webview" variable de ne pas avoir une portée qui s'étend de la méthode onCreate? Et si non, comment puis-je obtenir une poignée sur elle?
Il convient de webview = new WebView(ce); au lieu de WebView webview = new WebView(ce); dans onCreate(..).
OriginalL'auteur yanchenko
Vous écrivez
WebView webview;
à deux endroits à l'intérieur de la OnCreate() de la méthode.Simplement écrire
webview = new WebView(this);
au lieu deWebView webview = new WebView(this);
De cette façon, vous pouvez résoudre le pointeur null question.
OriginalL'auteur Vib
La WebView a une méthode pour obtenir de son contenu à la hauteur, que j'ai utilisé dans ma solution:
Regarder dehors pour:
OriginalL'auteur Julian