我试图找出可以达到的最大滚动位置WebView
,我已经尝试过了,webView.pageDown(true)
但结果被延迟了(我不能向下滚动,然后在用户面前向上滚动,而且这种方法每次都不起作用),我' 也尝试过,但阿拉伯文内容webView.getContentHeight()
的高度不正确。
请指教
我试图找出可以达到的最大滚动位置WebView
,我已经尝试过了,webView.pageDown(true)
但结果被延迟了(我不能向下滚动,然后在用户面前向上滚动,而且这种方法每次都不起作用),我' 也尝试过,但阿拉伯文内容webView.getContentHeight()
的高度不正确。
请指教
好的,我想出了答案
您可以使用获得真实的内容高度
(int) Math.floor(webView.getContentHeight() * webView.getScale());
当您获得真实高度时,只需覆盖 webview 中的滚动方法以侦听滚动事件,如果滚动达到真实高度,则您的 webview 位于滚动底部。
@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);
}
}
非严格是必须的,因为我在三星S5上发现最底部的滚动值距离最底部的值只有1个像素值!
仅当 webview 到达/滚动到底部时加载/可见按钮。
创建 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");