微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

你如何检查用户是否在没有完全执行的情况下放开了 swipeRefresh 元素?

如何解决你如何检查用户是否在没有完全执行的情况下放开了 swipeRefresh 元素?

例如,如果用户从屏幕顶部向下拉一半,然后通过推回刷新微调器取消操作,我有一个微调器的工件保留在我的应用程序中并且不会消失没有完成完全刷新。

我有这样的东西

binding.swipeRefresh.apply {
        setonChildScrollUpCallback { _,child ->
            val recyclerView = child as? RecyclerView
            (recyclerView?.layoutManager as? StackcardlayoutManager)?.canScrollUp() ?: true
        }
        setonRefreshListener { viewmodel.refreshCards() }
    }

所以当用户完全下拉时,viewmodel.refreshCards()会执行一些API调用,最后会设置一个observable值,在activity级别会设置这个:

binding.swipeRefresh.isRefreshing = false

但是如果用户基本上取消了这个动作,微调器通常会消失,但我发现了一个边缘情况,如果我非常缓慢地将微调器推回原位,微调器的阴影仍然存在动画。基本上,它总是按我的预期工作,除非用户通过缓慢推回微调器来取消操作。这是 swipeRefresh 的错误吗?我该如何修复这个边缘情况?是否有一些监听器可以知道用户是否放手,然后我可以手动停止动画而不在 VM 中执行刷新?

当我碰到边箱时看起来像这样(小黑影是微调器的底部)。我也许可以尝试破解它以进一步落后于另一个元素,但我知道它完全隐藏在晚上会睡得更好。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。