Android SwipeRefreshLayout的 swipe.setRefreshing(true)无法自动刷新问题

在项目中要求进入Activity时,即出现下拉刷新样式,以提醒用户正在数据正在刷新,但是用swipe.setRefreshing(true)方法却达不到效果,没有作用,经查找需要 
swipe.post(new Runnable() {
            @Override
            public void run() {
                if (swipe.isRefreshing()){
                    swipe.setRefreshing(false);
                }
            }
        });

这样做才会有下拉刷新出现,而无须用户手动下拉操作,然而这样做并没有进入SwipeRefreshLayout的onRefresh()方法,仍需主动调用onRefresh(),方可执行该方法,并且
想要在数据请求完成后,停止刷新样式,调用swipe.setRefreshing(false)是没有作用的,(在由用户操作引发的下拉刷新时起作用),这时候需要
 swipe.post(new Runnable() {
            @Override
            public void run() {
                if (swipe.isRefreshing()){
                    swipe.setRefreshing(false);
                }
            }
        });
这样,才能停止刷新。具体原因有网友分析出是SwipeRefreshLayout在onCreate()中onMeasure()方法,仍未发生作用,所以设置下拉刷新无效。
具体可见:https://www.zhihu.com/question/35422150



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值