PullToRefreshRecyclerView下拉刷新无效

     PullToRefreshRecyclerView是一个支持下拉刷新及上拉加载更多的控件,我平时开发一直用这个。But也会遇到莫名其妙的问题,今天就遇到了列表无法下拉的情况,而且不是所有列表都不能下拉。。。这是什么鬼!!!感慨无用,还是老老实实调试代码吧。

    首先,我对比了这两个页面的不同之处,但是这俩继承的是同一个基类(PS:此刻内心是崩溃的,呵呵一笑之)。

    其次,看一下这个空间的触摸事件处理逻辑,找到onInterceptTouchEvent()方法,发现程序对触摸事件处理时的

isReadyForPull()方法一直返回false。

 

 

 

 

 

 

 

PullToRefreshRecyclerView下拉刷新无效_第1张图片

继续跟进代码,发现下面这行代码一直为false,原因是mRefreshableView.getChildAt(0).getTop()值为15。

mRefreshableView.getChildAt(0).getTop() == mRefreshableView.getPaddingTop()

PullToRefreshRecyclerView下拉刷新无效_第2张图片

然后赶紧去看Item布局有没有什么属性是和15有关的,茅塞顿时大开,原来在Item的根布局中设置了PaddingTop。于是乎又新增了一层布局,不设置最外层根布局的padding、margin等属性即可。

PullToRefreshRecyclerView下拉刷新无效_第3张图片

总结:PullToRefresh控件的Item根布局不应该设置padding、margin属性值,否则你就抓耳挠腮的感慨吧。

 

你可能感兴趣的:(Android)