我以前是用webView 去加载,列表数据的,我的需求是,当滚动的就快要结束的时候,就提前加载数据了。所以我写成了这样:后面的 300 数值随便写的 你可以自己换算webView.getContentHeight()*webView.getScale()-(webView.getHeight()+webView.getScrollY())<300)
这不是问题的关键,关键是一般滑动是有惯性的,一般滑到低端不是用手一值触摸着的,所以说这个算式要放在哪个方法里才能一直的计算。如果放在触摸或手势监听里是不行的理由如上。
我使用了这种解决方法。把webview加入到listview中,然后在
listView_webview.setOnScrollListener(new OnScrollListener() {@Overridepublic 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;}}
@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
}});
getScrollY()方法返回的是当前可见区域的顶端距整个页面顶端的距离,也就是当前内容滚动的距离。
getHeight()或者getBottom()方法都返回当前webview这个容器的高度
getContentHeight返回的是整个html的高度,但并不等同于当前整个页面的高度,因为webview有缩放功能,所以当前整个页面的高度实际上应该是原始html的高度再乘上缩放比例。
if(webview.getContentHeight*webview.getScale()-(webview.getHeight()+webview.getScrollY()) ){
//已经处于底端
}
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(4)
我以前是用webView 去加载,列表数据的,我的需求是,当滚动的就快要结束的时候,就提前加载数据了。
所以我写成了这样:
后面的 300 数值随便写的 你可以自己换算
webView.getContentHeight()*webView.getScale()-(webView.getHeight()+webView.getScrollY())<300)
这不是问题的关键,关键是一般滑动是有惯性的,一般滑到低端不是用手一值触摸着的,所以说这个算式要放在哪个方法里才能一直的计算。如果放在触摸或手势监听里是不行的理由如上。
我使用了这种解决方法。
把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) {
}
});
getScrollY()方法返回的是当前可见区域的顶端距整个页面顶端的距离,也就是当前内容滚动的距离。
getHeight()或者getBottom()方法都返回当前webview这个容器的高度
getContentHeight返回的是整个html的高度,但并不等同于当前整个页面的高度,因为webview有缩放功能,所以当前整个页面的高度实际上应该是原始html的高度再乘上缩放比例。
if(webview.getContentHeight*webview.getScale()-(webview.getHeight()+webview.getScrollY()) ){
//已经处于底端
}