Android WebView тянуть, чтобы обновить проблему с загрузкой модальной - PullRequest
0 голосов
/ 10 октября 2019

У меня проблема с приложением для Android, использующим веб-просмотр. Я завернул веб-просмотр в swiperefreshlayout:

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swiperefresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <WebView
            android:id="@+id/webView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

При запуске обновления веб-просмотр перезагружается. Это прекрасно работает в большинстве случаев для меня. У меня проблема, когда веб-страница прокручивается вверх, и открывается модальное окно, которое выше, чем веб-просмотр. При прокрутке вниз по модалу все работает нормально, но при попытке прокрутки вверх проблема возникает. Перетаскивание для обновления запускается. Насколько я понимаю, это потому, что веб-страница позади модального окна прокручивается вверх, она думает, что должна обновить.

Кто-нибудь знает, как обойти эту проблему?

1 Ответ

0 голосов
/ 10 октября 2019

Вам нужно отключить функцию pull для обновления, когда прокрутка веб-просмотра Y не равна 0. Пожалуйста, проверьте код ниже:

    pullToRefresh.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
        @Override
        public void onScrollChanged() {
            if (webView.getScrollY() == 0)
                pullToRefresh.setEnabled(true);
            else
                pullToRefresh.setEnabled(false);
        }
    });

С помощью этого вы не увидите проблему при прокрутке вверх в веб-просмотре.

...