【SwipeRefreshLayout刷新两次才显示数据 】 | IT修真院·坑乎
咨询电话 : 010-59478634
切换导航
首页
我的提问
我的回答
我的点赞
消息通知
个人主页
×
提示
尚未登陆,前往官网登陆?
×
提示
尚未登陆,前往官网登陆?
SwipeRefreshLayout刷新两次才显示数据
我也踩过这个坑(
1
)
已统计您的踩坑,无需重复点击
回答(1)
详细描述
数据查询还没完成,adapter里的数据还没更新,UI更新就开始了,导致RecyclerView不能及时更新子项。
截图
代码
public class MyOnRefrshListener implements SwipeRefreshLayout.OnRefreshListener { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { Toast.makeText(getActivity(), "正在刷新", Toast.LENGTH_SHORT).show(); Log.d("通知", "开始查询"); //查询数据 queryData(0, STATE_REFRESH); Log.d("", "数据查询已完成,通知主线程更新UI"); mHandler.sendEmptyMessage(CHANGE_UI); swipeRefreshLayout.setRefreshing(false); } }, 2000); } }
public void onRefresh()监听到刷新动作后开始执行刷新操作; 先通过queryData()查询数据,将数据传进adapter; mHandler.sendEmptyMessage(CHANGE_UI)通知主线程更新UI;
编辑于2024-11-23
时间排序
热门排序
[北京|结业弟子]Android-苏正荣
0
查询数据应该放在子线程中完成,查询完成后通知主线程更新UI,否则容易造成主线程阻塞
查看全部>
编辑于2018-11-24
首页
1
末页
去第
页
确定
Copyright ©2015 北京葡萄藤信息技术有限公司 All Rights Reserved | 京ICP备15035574号-1
复制链接
新浪微博
微信扫一扫
2804
0
10
SwipeRefreshLayout刷新两次才显示数据
1
1