Android webview 拉取以刷新引导模式的问题



我在使用网络视图的安卓应用程序时遇到问题。我已经将 Web 视图包装在滑动刷新布局中:

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

触发刷新时,将重新加载 Web 视图。这对我来说大部分时间都很完美。我遇到的问题是当网页滚动到顶部时,打开了一个高于 Web 视图的模式。在模式中向下滚动时,一切正常,但是当尝试向上滚动时,就会出现问题。将触发拖动以刷新。据我所知,这是因为模态后面的网页滚动到顶部,它认为它应该刷新。

有谁知道如何解决这个问题?

您需要禁用拉取以在 Web 视图滚动 Y 不为 0 时刷新。请检查以下代码:

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

使用此功能,在 Web 视图中滚动到顶部时不会看到问题。

最新更新