2013-08-11 4 views
2

Je veux que mon webview défilent automatiquement. Ci-dessous ce que j'ai essayé, il fait défiler le webview mais il ne s'arrête jamais, c'est-à-dire qu'il continue même après que le webview n'a pas de contenu à afficher donc il affiche simplement l'écran blanc. S'il vous plaît dites-moi comment cela peut être réparé.Auto-Scroll le Webview

webview.setPictureListener(new PictureListener() { 

       public void onNewPicture(WebView view, Picture picture) { 
        webview.scrollBy(0, 1); 

       } 
      }); 

Répondre

0

Essayez mon code et espère que cela aide :) défiler vers le bas:

  mWebView.post(new Runnable() { 
      public void run() { 
       if (mWebView.getContentHeight() * mWebView.getScale() >= mWebView.getScrollY()){ 
        mWebView.scrollBy(0, (int)mWebView.getHeight()); 
       } 
      } 
     }); 

défilement vers le haut

mWebView.post(new Runnable() { 
      public void run() { 
       if (mWebView.getScrollY() - mWebView.getHeight() > 0){ 
        mWebView.scrollBy(0, -(int)mWebView.getHeight()); 
       }else{ 
        mWebView.scrollTo(0, 0); 
       } 
      } 
     }); 
0

Ce travail de code pour le défilement automatique ainsi que votre défilement descend alors automatiquement venir au sommet, puis recommencer à défiler. Vérifiez et si une requête me mettre à jour.

Timer repeatTask = new Timer(); 
     repeatTask.scheduleAtFixedRate(new TimerTask() { 
      @Override 
      public void run() { 
        runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
          int height = (int) Math.floor(webView.getContentHeight() * webView.getScale()); 
          int webViewHeight = webView.getMeasuredHeight(); 
           if (webView.getScrollY() + webViewHeight >= height) { 
             webView.scrollBy(0, 0); 
             webView.scrollTo(0, 0); 
            } else { 
             webView.scrollBy(webView.getTop(), webView.getBottom()); 
            } 
           } 
       }); 
      } 
}, 0, 5000);//delayed auto scroll time