PullToRefreshRecyclerView下拉刷新无效
PullToRefreshRecyclerView是一个支持下拉刷新及上拉加载更多的控件,我平时开发一直用这个。But也会遇到莫名其妙的问题,今天就遇到了列表无法下拉的情况,而且不是所有列表都不能下拉。。。这是什么鬼!!!感慨无用,还是老老实实调试代码吧。
首先,我对比了这两个页面的不同之处,但是这俩继承的是同一个基类(PS:此刻内心是崩溃的,呵呵一笑之)。
其次,看一下这个空间的触摸事件处理逻辑,找到onInterceptTouchEvent()方法,发现程序对触摸事件处理时的
isReadyForPull()方法一直返回false。
继续跟进代码,发现下面这行代码一直为false,原因是mRefreshableView.getChildAt(0).getTop()值为15。
mRefreshableView.getChildAt(0).getTop() == mRefreshableView.getPaddingTop()
然后赶紧去看Item布局有没有什么属性是和15有关的,茅塞顿时大开,原来在Item的根布局中设置了PaddingTop。于是乎又新增了一层布局,不设置最外层根布局的padding、margin等属性即可。
总结:PullToRefresh控件的Item根布局不应该设置padding、margin属性值,否则你就抓耳挠腮的感慨吧。