解决方法:核心就是使用SmartRefreshLayout提供的滾动边界功能当WebView滑动到顶部时,开启下拉刷新其他情况下关闭。在SmartRefreshLayout的issue中有同学建议让html告诉我们WebView是否到顶,但是h5同学说他们无法监听fling狀态所以由h5判断是否滑动到顶部并不准确,而且如果h5需要改的项目多的话人家都不乐意了。所以最好还是我们自己判断
4、做完以上步骤后,基本上滑动就正常了但是又出现个问题,有时候快速向下滑动页面被拉下来了,但是没有header松手后,页面也不会自动回到顶蔀这种情况的原因,个人猜测、猜测、猜测是ScrollBoundaryDecider的canRefresh方法调用要早于WebView的onScrollChanged方法,导致页面拉下来之后(越界拖动效果)我们才获取到scrollY=0。针對这个情况我在scrollY==0时,根据SmartRefreshLayout的状态重新setEnableRefresh(true)。
这样页面显示基本正常但是还是有问题,偶现松手后不会刷新待研究。