嗨,
我在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);
}
}
请有人解释这种现象背后的原因。 如果需要任何其他信息或代码,请随时与我联系。