が到達できる最大スクロール位置を把握しようとしていますが、WebView
試しましたwebView.pageDown(true)
が、結果が遅れます(下にスクロールできず、ユーザーの前で上にスクロールできません。この方法は毎回機能しません)、iも試してみましたが、アラビア語のコンテンツwebView.getContentHeight()
の高さが正しくありません。
ご意見をお聞かせください
が到達できる最大スクロール位置を把握しようとしていますが、WebView
試しましたwebView.pageDown(true)
が、結果が遅れます(下にスクロールできず、ユーザーの前で上にスクロールできません。この方法は毎回機能しません)、iも試してみましたが、アラビア語のコンテンツwebView.getContentHeight()
の高さが正しくありません。
ご意見をお聞かせください
わかりました、私は答えを理解しました
を使用して実際のコンテンツの高さを取得できます
(int)Math.floor(webView.getContentHeight()* webView.getScale());
実際の高さを取得したら、webviewのscrollメソッドをオーバーライドして、スクロールイベントをリッスンします。スクロールが実際の高さに達すると、Webビューはスクロールの下部に表示されます。
@Override
public void onScroll(int l, int t) {
int height = (int) Math.floor(webView.getContentHeight() * webView.getScale());
int webViewHeight = webView.getHeight();
int cutoff = height - webViewHeight - 10; // Don't be too strict on the cutoff point
if (t >= cutoff) {
setDisclaimerButtonEnabled(true);
}
}
厳密性が必要なのは、Samsung S5で、一番下のスクロール値が一番下の値から1ピクセルだけ離れていることがわかったためです。
ウェブビューが下に到達/スクロールしたときにのみロード/表示ボタン。
JavaScriptクラスを作成します:
public class JavaScriptInterface {
@android.webkit.JavascriptInterface
public void didScrollToBottom() {
Log.d(TAG, "Scroll to Bottom");
myHandler.post(new Runnable() {
@Override
public void run() {
btnAccept.setVisibility(View.VISIBLE);
}
});
}
}
onCreate()の場合:
final JavaScriptInterface jsInterface = new JavaScriptInterface();
myWebView.addJavascriptInterface(jsInterface, "AndroidFunction");