Java Android add OnScrollChangeListener

zz2j4svz  于 2023-08-01  发布在  Android
关注(0)|答案(1)|浏览(132)

我试图添加一个OnScrollChangeListener到我正在开发的自定义Webview。但编译不了。下面是我正在使用的代码:

// Set custom OnScrollChangeListener
    setOnScrollChangeListener(new OnScrollChangeListener() {
        @Override
        public void onScrollChange(Webview view, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            isScrolling = true;
            isScrolledToTheTop = (scrollY == 0);
        }
    });

字符串
但是在编译时,我得到了以下错误,这对我来说毫无意义:

/.../VEMAWebview.java:36: error: <anonymous de.X.Y.VEMAWebview$1> is not abstract and does not override abstract method onScrollChange(View,int,int,int,int) in OnScrollChangeListener
        setOnScrollChangeListener(new OnScrollChangeListener() {
                                                               ^
/.../VEMAWebview.java:37: error: method does not override or implement a method from a supertype
            @Override
            ^


其中上面提到的onScrollChange函数在第37行中。
基本上它是说onScrollChange没有被覆盖。在下一行中,它说不允许使用@override,因为它没有覆盖任何函数
我该怎么解决这个问题?

yc0p9oo0

yc0p9oo01#

这是错误的签名,因为暴徒生活在评论中建议。
正确的代码应该是这样的:

import android.view.View;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;

...

    // Set custom OnScrollChangeListener
setOnScrollChangeListener(new OnScrollChangeListener() {
    @Override
    public void onScrollChange(View view, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
        isScrolling = true;
        isScrolledToTheTop = (scrollY == 0);
    }
});

字符串
我不想问为什么Java不只是说签名不匹配任何可用的超类型方法。我很高兴我的项目是基于C的(C只是告诉你一个不匹配的签名),我只需要这个小的Java片段。

相关问题