WebView使用scrollTo进入错误的坐标

时间:2019-06-20 11:30:18

标签: android webview scrollto onscrollchanged

嗨,

我在webview上的scrollTo函数有一个奇怪的行为。

我有一个Web视图,其内容宽度比Web视图的实际宽度大3倍或4倍。我需要通过Fling手势上的scrollView前后滚动。

实际上,当调用scrollTo时,随后会调用onScrollChanged,并且视图将滚动到正确的位置。这应该是正确的行为。

不幸的是,有时当我向后退时,onScrollChanged参数与指定给scrollTo的参数不同,并且视图滚动到错误的位置。

请在下面找到这两个函数的代码

@Override
public void scrollTo(int x, int y) {

    System.out.println("called scrollTo x " + x);
    if (x % delegate.getDisplayWidth() == 0)//making sure it's going to the right position
    {
        super.scrollTo(x, y);
    }
}

protected void onScrollChanged(int l, int t, int oldl, int oldt) {

    System.out.println("onScrollChanged l: " + l + ", t: " + t + ", oldl: " + oldl + ", oldt: " + oldt);

    if(l % delegate.getDisplayWidth() != 0)
    {
        int newL = delegate.getDisplayWidth() * (this.getPageCount());
        System.out.println("exceptional behavior newL " + newL);
        scrollTo(newL, oldt);
    }
    else
    {
        System.out.println("normal behavior l: " + l);
        super.onScrollChanged(l, t, oldl, oldt);
    }
}

请有人解释这种现象背后的原因。 如果需要任何其他信息或代码,请随时与我联系。

0 个答案:

没有答案