在工作中中使用 PullToRefreshListView时碰到一个问题。。屏幕创建的时候PullToRefreshListView.setRefreshing();不会回掉监听器的下拉更新方法
这个需要改动 PullToRefreshBase (line 782)
case PULL_FROM_START:
if (getHeaderSize() == 0) { //开始时getHanderSize的大小等于0
smoothScrollToDelay(listener);
} else {
smoothScrollTo(-getHeaderSize(), listener);
}
break;
if (getHeaderSize() == 0) { //开始时getHanderSize的大小等于0
smoothScrollToDelay(listener);
} else {
smoothScrollTo(-getHeaderSize(), listener);
}
break;
}
private void smoothScrollToDelay(final OnSmoothScrollFinishedListener listener) {
//final View v = mHeaderLayout.getInnerLayout();
mHeaderLayout.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
int size = getHeaderSize();
//Log.i("tag", "size==>"+size);
if (size == 0) {
return false;
}
smoothScrollTo(-size, listener);
mHeaderLayout.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
});
}
//final View v = mHeaderLayout.getInnerLayout();
mHeaderLayout.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
int size = getHeaderSize();
//Log.i("tag", "size==>"+size);
if (size == 0) {
return false;
}
smoothScrollTo(-size, listener);
mHeaderLayout.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
});
}