我在 FrameLayout 中有一个 WebView,用于添加选项卡,因为我正在创建浏览器。 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>

最佳答案

只需使用 ViewTreeObserver.OnScrollChangedListener 实现您的 Fragment 或 Activity,然后设置 Listener 像 webview.getViewTreeObserver().addOnScrollChangedListener(this);

在 onScrollChanged() 方法中这样做

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

关于android - 在 webview 中向上滚动会导致 SwipeRefreshLayout 刷新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31412790/

10-15 10:14