Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓刷卡布局,如何防止双重刷卡_Android_Swiperefreshlayout - Fatal编程技术网

Android 安卓刷卡布局,如何防止双重刷卡

Android 安卓刷卡布局,如何防止双重刷卡,android,swiperefreshlayout,Android,Swiperefreshlayout,我正在我的应用程序中实现SwipeRefreshLayout。 我已经成功地实现了OnRefreshListener,并且能够正确地刷新ListView项 我的问题是,如果我向下滑动,当SwiperFreshLayout刷新时,它会启动一个新的刷新动画和一个新的刷新过程。生成的动画不好,进度控制盘似乎无法正确显示。 我想复制gmail应用程序的行为。如果下拉刷新,则在邮件列表刷新时无法再次下拉。 如果列表正在刷新,我希望防止再次向下滑动 谢谢您应该使用一个布尔标志,指示它是否已经刷新 这样,当第

我正在我的应用程序中实现SwipeRefreshLayout。 我已经成功地实现了OnRefreshListener,并且能够正确地刷新ListView项

我的问题是,如果我向下滑动,当SwiperFreshLayout刷新时,它会启动一个新的刷新动画和一个新的刷新过程。生成的动画不好,进度控制盘似乎无法正确显示。 我想复制gmail应用程序的行为。如果下拉刷新,则在邮件列表刷新时无法再次下拉。 如果列表正在刷新,我希望防止再次向下滑动


谢谢

您应该使用一个布尔标志,指示它是否已经刷新

这样,当第一次刷卡已经运行时,您可以忽略第二次刷卡

希望这有帮助

编辑:

看到问题是为了动画,而不是为了任务

您是否尝试在第二次刷卡时调用setRefreshing(false)?它取消了两个动画还是只取消了第二个

如果是第一种情况,你打电话怎么办

setRefreshing(false);
setRefreshing(true);
如果这不起作用,也许你可以打电话

setEnabled(false)
当第一次刷卡时,它会被锁定,直到它完成,然后你再呼叫

setRefreshing(false);
setEnabled(true)

让我知道是否有工作。

我已尝试在onRefresh()方法中使用标志。这样我可以阻止执行新的刷新任务,但动画仍然显示。如果我在显示进度控制盘的同时向下拉,我仍然可以看到一个新的控制盘出现。
setEnabled(false)
是完美的解决方案。谢谢。那救了我一天!