Closed zhangxiann closed 7 years ago
这里不是post到主线线程。而是确保执行refresh 动画的时候view已经完成measure,能拿到正确的宽高信息。
@Aspsine 你好,新版本有修复这个问题嘛? 如果没有的话,是不是都需要post到消息队列里面,才能正确拿到宽高信息呢。
@ruijun 新版本未修复,因为这个不是一个问题。
分情况。 1.在activity的onCreate->onResume这个过程中,view实际上没有measure成功。所以拿不到宽和高,这时候需要post到住线程的消息队列中调用:iRecyclerView.setRefreshing(true); 方法。
2.如果view已经成功加载,界面已经显示出来了。就不需要。 例如:界面上有一个button,点击button,onClick回调中调用 iRecyclerView.setRefreshing(true); 这时候就不需要post。
如果觉得搞不清楚什么时候需要post,什么时候不需要post。每次调用的时候都post就ok。
iRecyclerView.post(new Runnable() {
@override
public void run() {
iRecyclerView.setRefreshing(true);
}
});
觉得每次都post麻烦,可以重写一下iRecyclerView.setRefreshing(true);方法,给super方法加个post。
@Aspsine OK
// set auto refreshing iRecyclerView.post(new Runnable() { @Override public void run() { iRecyclerView.setRefreshing(true); } }); 这里的setRefreshing方法必须放手动post到主线程执行吗?我在activity的onCreate方法里面直接调用可以吗?