Прокрутка вверх в 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>
Ответы
Ответ 1
Просто реализуйте свой фрагмент или действие с помощью ViewTreeObserver.OnScrollChangedListener, затем установите Listener как webview.getViewTreeObserver(). addOnScrollChangedListener (this);
В методе onScrollChanged() это нравится
@Override
public void onScrollChanged() {
if (webview.getScrollY() == 0) {
swipeLayout.setEnabled(true);
} else {
swipeLayout.setEnabled(false);
}
}