下拉刷新SwipeRefreshLayout
会和Webview
的竖向滚动冲突,网上各种解决方法五花八门,有重写SwipeRefreshLayout
的,有给Webview
触摸加偏移的,但遇到固定页面有嵌套滚动就全阵亡了。一个偶然发现Webview
也有OverScrolled
方法,会在滚动超过处理范围时调用,既然知道什么时候过滚动,那问题就迎刃而解了。
重写WebView
按下的时候置false
,在onOverScrolled
更新状态:
1 | var overScrollY = false |
SwipeRefreshLayout监听
在SwipeRefreshLayout.setOnChildScrollUpCallback
返回WebView.overScrollY
:
1 | item_swipe.setOnChildScrollUpCallback { _, _ -> |
两步搞定,简直不能更简单,更进一步还能适配关联滚动。