我在 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/