Android-如何判断webview滚动到了最后

Android-如何判断webview滚动到了最后

归属感 发布于 2017-02-18 字数 0 浏览 993 回复 4

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

想挽留 2017-07-23 4 楼

我以前是用webView 去加载,列表数据的,我的需求是,当滚动的就快要结束的时候,就提前加载数据了。
所以我写成了这样:
后面的 300 数值随便写的 你可以自己换算
webView.getContentHeight()*webView.getScale()-(webView.getHeight()+webView.getScrollY())<300)

夜无邪 2017-06-17 3 楼

这不是问题的关键,关键是一般滑动是有惯性的,一般滑到低端不是用手一值触摸着的,所以说这个算式要放在哪个方法里才能一直的计算。如果放在触摸或手势监听里是不行的理由如上。

想挽留 2017-04-23 2 楼

我使用了这种解决方法。
把webview加入到listview中,然后在

listView_webview.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
// 当不滚动时
case OnScrollListener.SCROLL_STATE_IDLE:
// 判断滚动到底部
if (view.getLastVisiblePosition() == (view.getCount() - 1)) {
Log.i("--webview_over", "yes");

}
break;
}
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {

}
});

偏爱自由 2017-03-21 1 楼

getScrollY()方法返回的是当前可见区域的顶端距整个页面顶端的距离,也就是当前内容滚动的距离。

getHeight()或者getBottom()方法都返回当前webview这个容器的高度

getContentHeight返回的是整个html的高度,但并不等同于当前整个页面的高度,因为webview有缩放功能,所以当前整个页面的高度实际上应该是原始html的高度再乘上缩放比例。

if(webview.getContentHeight*webview.getScale()-(webview.getHeight()+webview.getScrollY()) ){

//已经处于底端

}