Android 检测Webview滚动是否到达末尾

Android 检测Webview滚动是否到达末尾,android,scroll,android-webview,Android,Scroll,Android Webview,我试图找出WebView可以达到的max scroll位置,我尝试了WebView.pageDown(true),但是结果被延迟了(我不能在用户面前向下滚动,然后向上滚动,而且这种方法每次都不起作用),我也尝试了WebView.getContentHeight()并且阿拉伯语内容的高度不正确 请告诉我好的,我找到了答案 您可以使用 (int)Math.floor(webView.getContentHeight()*webView.getScale()) 当您获得真实高度时,只需覆盖webvie

我试图找出
WebView
可以达到的max scroll位置,我尝试了
WebView.pageDown(true)
,但是结果被延迟了(我不能在用户面前向下滚动,然后向上滚动,而且这种方法每次都不起作用),我也尝试了
WebView.getContentHeight()
并且阿拉伯语内容的高度不正确


请告诉我好的,我找到了答案

您可以使用

(int)Math.floor(webView.getContentHeight()*webView.getScale())


当您获得真实高度时,只需覆盖webview中的scroll方法以侦听scroll事件,如果滚动达到真实高度,则您的webview位于滚动的底部。

仅当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()中:


非严格性是必需的,因为我在三星S5上发现,最底部的滚动值距离最底部的值只有1个像素

为什么您想知道最大滚动位置?我正在尝试从
WebView
内容创建页面,用户不能滚动内容,我们必须创建页面,因此当我使用
scrollTo
向下滚动时,我无法判断是否已到达末尾,这是requirement@Override公共布尔onScroll(MotionEvent e1、MotionEvent e2、浮点距离X、浮点距离Y){int lenght=(int)Math.floor(WebView1.getContentHeight()*WebView1.getScale());返回false;}您是如何知道页面已经结束的……@VipinSahu查看我的答案以获得全面的解决方案的。WebView.getScale已被弃用,我们应该使用getScaleY和getScaleX。这是由于Math.floor()造成的。请尝试Math.round()如何覆盖
onScroll(int l,int t)
method?int t代表什么?
final JavaScriptInterface jsInterface = new JavaScriptInterface();
myWebView.addJavascriptInterface(jsInterface, "AndroidFunction");
@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);
    }
}