gpt4 book ai didi

android - 如何在android中检测webview的scrollend?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:30 24 4
gpt4 key购买 nike

我的是一个本地应用程序,如果用户滚动到 webview 的末尾,我想在其中显示/隐藏一个按钮。我看了一个答案here并了解如何通过接口(interface)注册回调。我的主要问题是我无法在 onScrollChanged 方法中进行正确的计算。我已经尝试组合使用 getHeight()、getContentHeight()、top 等,但它似乎触发得太早了。我尝试了一个像谷歌这样内容相对较少的简单页面以及一个新闻页面。

这些逻辑适用于普通 ScrollView 。由于网页内容很多,可能会打乱计算。粘贴示例代码:不起作用。

@Override
protected void onScrollChanged(int left, int top, int oldLeft, int oldTop) {
if ( mOnWebViewBottomReachedListener != null ) {
//if ( (getContentHeight() - (top + getHeight())) <= mMinDistance )
int diff = (getBottom() - (getHeight() + getScrollY()));
Log.e("values ", diff+" o");
if ((int) Math.floor(getContentHeight() * getScaleY()) == top)
mOnWebViewBottomReachedListener.onBottomReached(this);
}
super.onScrollChanged(left, top, oldLeft, oldTop);
}

需要这方面的帮助。谢谢。

最佳答案

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
int height = (int) Math.floor(this.getContentHeight() * this.getScale());
int webViewHeight = this.getMeasuredHeight();
if(this.getScrollY() + webViewHeight >= height){
Log.i("THE END", "reached");
}
super.onScrollChanged(l, t, oldl, oldt);
}

此逻辑适用于 WebView 。

关于android - 如何在android中检测webview的scrollend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20998108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com