当滚动位置在顶部时 SwipeRefreshLayout + WebView [英] SwipeRefreshLayout + WebView when scroll position is at top

查看:27
本文介绍了当滚动位置在顶部时 SwipeRefreshLayout + WebView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将 SwipeRefreshLayout 与 WebView 结合使用.

I'm trying to use SwipeRefreshLayout with WebView.

我面临的问题是在页面中间,当用户向下滚动时,会出现不需要的刷新.

I'm facing the problem where in the middle of page, when user scrolls down, unwanted refresh kicks in.

如何使刷新事件仅在 webview 的滚动位置位于顶部时发生.(即,他正在查看页面的顶部)?

How do I make the refresh event only happen when webview's scroll position is at the top. (ie, he's looking at the top portion of the page)?

推荐答案

我已经设法解决了它,而无需扩展任何东西.看看这个片段(特定于片段的):

I've managed to solve it without having to extend anything. Have a look at this snippet (Fragment-specific):

private ViewTreeObserver.OnScrollChangedListener mOnScrollChangedListener;

@Override
public void onStart() {
    super.onStart();

    swipeLayout.getViewTreeObserver().addOnScrollChangedListener(mOnScrollChangedListener =
            new ViewTreeObserver.OnScrollChangedListener() {
                @Override
                public void onScrollChanged() {
                    if (mWebView.getScrollY() == 0)
                        swipeLayout.setEnabled(true);
                    else
                        swipeLayout.setEnabled(false);

                }
            });
}

@Override
public void onStop() {
    swipeLayout.getViewTreeObserver().removeOnScrollChangedListener(mOnScrollChangedListener);
    super.onStop();
}

有关更广泛的上下文,请查看我对 Android - SwipeRefreshLayout with empty textview 的回答.

For a broader context, have a look at my answer to Android - SwipeRefreshLayout with empty textview.

这篇关于当滚动位置在顶部时 SwipeRefreshLayout + WebView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆