我正在尝试找出WebView
可以达到的最大滚动位置,我尝试了webView.pageDown(true)
但结果却延迟了(我无法向下滚动) ,然后在用户面前,这种方法每次都不起作用),我也试过webView.getContentHeight()
并且阿拉伯语内容的高度不正确。
请建议
答案 0 :(得分:11)
您可以使用
获取实际内容高度(int)Math.floor(webView.getContentHeight()* webView.getScale());
当你获得真正的高度时,只需覆盖webview中的滚动方法来收听滚动事件,如果滚动到达真实高度,你的webview就在滚动的底部。
答案 1 :(得分:6)
@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个像素值远离最底层值!
答案 2 :(得分:-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");