我正在我的应用中实现SwipeRefreshLayout。 我已经成功实现了OnRefreshListener,并且能够正确刷新ListView项目。
我的问题是,如果我向下滑动,当SwipeRefreshLayout刷新时,它会启动一个新的刷新动画和一个新的刷新过程。生成的动画很糟糕,进度轮似乎无法正确显示。 我想重现gmail应用程序的行为。如果您向下拉以刷新,则在邮件列表刷新时无法再次下拉。 如果列表更新,我想阻止第二次向下滑动。
谢谢
答案 0 :(得分:2)
你应该使用一个布尔标志来指示它是否已经刷新。
这样你可以忽略第二次滑动,而第一次滑动已经在运行。
希望这有帮助。
编辑:
看问题是动画而不是任务。
您是否尝试过在第二次滑动时调用setRefreshing(false)?它是取消动画还是仅取消第二个动画?
如果是第一种情况,请致电
setRefreshing(false);
setRefreshing(true);
如果那不起作用,也许你可以打电话
setEnabled(false)
第一次滑动时,它会被锁定直到完成然后你打电话
setRefreshing(false);
setEnabled(true)
让我知道是否有效。