webview переходит на неправильную координату, используя scrollTo - PullRequest
0 голосов
/ 20 июня 2019

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);
    }
}

Кто-нибудь любезно объяснит причину такого поведения. Если вам нужна дополнительная информация или код, пожалуйста, держите меня в курсе.

...