2011-12-14 28 views
2

ScrollviewではscrollView.getMaxScrollAmountにアクセスできますが、webviewで呼び出す方法はわかりません。私はそれについての情報を得るために不正行為を試みた。ここで私が試したことがあります。WebViewの最大スクロール値の取得

方法は、特定の量を連続的にスクロールし、値がその量で増加していないかどうかをチェックして、その量を得て最大値で返すかどうかをチェックするというものです。しかし、それは動作しません。

あなたが行くここ
public String scrollToMAX(){ 
     webView1.scrollTo(0, 0); 
     Boolean istrue = true; 
     String getIntData = ""; 
     int i = 0; 
     while(istrue){ 
      int checker = webView1.getScrollY(); 
      if(i != checker){ 
       i = checker; 
       getIntData = Integer.toString(i); 
       istrue = false; 
      } 
      i=i+5000; 
      webView1.scrollTo(0, i); 
     } 
     webView1.scrollTo(0, 0); 
     return getIntData; 
     //Put a return string here 
    } 
+0

コンテンツが読み込まれてwebviewが膨らんだ後にこの関数を呼び出すのですか? –

+0

はい。それはbuttonEventにロードされます。 – wesdfgfgd

答えて

4

:これは私のために完璧に働いている(それは最後までスクロールする)

トリックが少し遅く機能にgetContentHeight

のWebViewの
package sherif.android.activity; 

import sherif.android.R; 
import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class WebClientTestActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     WebView webView = new WebView(this); 
     String UserAgent = "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"; 
     //webView.getSettings().setUserAgentString(UserAgent); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.loadUrl("http://www.google.com/search?gcx=w&sourceid=chrome&ie=UTF-8&q=arsenal"); 
     webView.setWebViewClient(new WebViewClient(){ 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       Log.v("here","here"); 
       view.scrollBy(0, view.getContentHeight()); 
      } 
     }); 
     setContentView(webView); 
    } 
} 
+1

私には完全にスクロールしません。私は非常に下のスクロールの間にテストを試みたint scrollIsMax = webview1.getScrollY(); int max = webView1.getMeasuredHeight();データ間に差異があるか、またはそれらが等しくない。私もあなたのview.getContentHeight()をテストし、完全にスクロールしません。 – wesdfgfgd

+0

私のコードを試しましたか?私はアンドロイドでそれを試した1.6 –

+0

はい私はした。 android 2.2では、右側のスクロールが完全にスクロールしません。 – wesdfgfgd

17

を使用しているが、誰でも答えが必要な場合、webviewは保護されたメソッドを持っています - computeVerticalScrollRange() - 最大スクロール範囲を知りたい場合、WebViewをオーバーライドしてcomputeVerticalScrollRange() - getHeight()を返すことができます

+0

私もちょっと遅かったですが、ありがとう、2年遅れて、私の問題を解決しました= **** – user2582318

+0

私のために働きません。返される値は、Webページがスクロールできるまでの値よりもはるかに高い値です。 – Saket

+0

7.0.1で作業しました。保存されたタイムメイト! –

関連する問題