/ / przewijanie w widoku strony powoduje odświeżanie przez SwipeRefreshLayout - webview, framelayout, swiperefreshlayout

przewijanie w przeglądarce powoduje odświeżanie według SwipeRefreshLayout - webview, framelayout, swiperefreshlayout

Mam WebView wewnątrz FrameLayout, aby dodać zakładki, ponieważ tworzę przeglądarkę. FrameLayout znajduje się wewnątrz SwipeRefreshLayout.

Problem: Za każdym razem, gdy szybko przewijam zawartość w WebView, ikona odświeżania pojawia się zza paska narzędzi. Powinno się to zdarzyć tylko wtedy, gdy zawartość WebView jest na szczycie. Ma to coś wspólnego z FrameLayout, kiedy go usunę, problem zniknął.

Układ wygląda następująco:

<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>

Odpowiedzi:

3 dla odpowiedzi № 1

Po prostu zaimplementuj swój Fragment lub Aktywność za pomocą ViewTreeObserver.OnScrollChangedListener, a następnie ustaw Listener jak Webview.getViewTreeObserver (). AddOnScrollChangedListener (this);

W metodzie onScrollChanged () to lubisz

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