Подтвердить что ты не робот

Прокрутка вверх в webview вызывает обновление с помощью SwipeRefreshLayout

У меня есть WebView внутри FrameLayout, чтобы добавлять вкладки, потому что я создаю браузер. FrameLayout находится внутри SwipeRefreshLayout.

Проблема: всякий раз, когда я быстро просматриваю контент в WebView, из-за панели инструментов появляется значок обновления. Это должно произойти только тогда, когда содержимое WebView находится наверху. Это имеет какое-то отношение к FrameLayout, когда я его удаляю, проблема исчезла.

Макет выглядит следующим образом:

<SwipeRefreshLayout
            android:id="@+id/swipeRefresh"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

        <FrameLayout
        android:id="@+id/webViewFrame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"    
        >
        <WebView
            android:id="@+id/webView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        </FrameLayout>

</SwipeRefreshLayout>
4b9b3361

Ответ 1

Просто реализуйте свой фрагмент или действие с помощью ViewTreeObserver.OnScrollChangedListener, затем установите Listener как webview.getViewTreeObserver(). addOnScrollChangedListener (this);

В методе onScrollChanged() это нравится

@Override
public void onScrollChanged() {
    if (webview.getScrollY() == 0) {
        swipeLayout.setEnabled(true);
    } else {
        swipeLayout.setEnabled(false);
    }
}