Hy,
У меня странное поведение с функцией scrollTo в веб-просмотре.
У меня есть веб-просмотр с шириной в 3 или 4 раза больше, чем фактическая ширина веб-просмотра. Мне нужно прокручивать вперед и назад по scrollView на жест Fling.
Фактически, когда вызывается 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);
}
}
Кто-нибудь любезно объяснит причину такого поведения.
Если вам нужна дополнительная информация или код, пожалуйста, держите меня в курсе.