微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对于某些网站,webview onScrollChange永远不会被调用

如何解决对于某些网站,webview onScrollChange永远不会被调用

我在SwipeRegreshLayout内有一个webview,因此,当用户位于网页顶部时,他们向上滚动swipeRefreshLayout会重新加载页面。但是,对于少数网站,如果我进入底部并尝试向上滚动swipeRefreshLayout会被触发,但不应该这样,因为仅当用户位于网页顶部时才需要触发此swipeRefreshLayout。我发现发生这种情况是因为我的webview onScrollChange方法没有被那些网站调用,结果导致该网页没有足够的信息(无论用户是网页的顶部还是底部)。

这是我的布局页面

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <WebView
            android:id="@+id/web_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

我调试是否向Webview通知有关用户在网页上滚动的方式是:

binding.webView.getViewTreeObserver().addOnScrollChangedListener(OnScrollChangedListener {
        
        Log.d("DEBUG",binding.webView.getScrollY().toString())
        if (binding.webView.getScrollY() == 0){ 
            binding.swipeRefresh.setEnabled(true)
        }
        else binding.swipeRefresh.setEnabled(false)
    })

对于大多数网站,此onScrollChange方法会被调用,但只有极少数网站无法调用方法,因为我的swipeRefreshLayout工作很奇怪。我的swipeRefreshLayout无法正常工作的网站是:https://www.dailymail.co.uk/home/index.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。