Open ChawLoo opened 2 months ago
跟这个问题的根源一致 #353 也是自定义View的attachToWindow的时序问题 因为没有attachToWindow,这个判断逻辑进不去,就无法更改状态为:RefreshFinish,导致后续状态判断出现问题 根源是这个,然后后续一系列的状态切换问题我就不截图了,打断点能看出来
我也遇见类似问题,只是我不会排查、定位故障
定位到了,正在研究如何修复
有个解决方案:
post {
if (hasMore) finishRefresh(success) else finishRefreshWithNoMoreData()
}
440 这个方案不行吗?
不行,我已经关闭了,那个方案就无法autorefresh了,还是在SM的状态管理上的问题
有个解决方案:
post { if (hasMore) finishRefresh(success) else finishRefreshWithNoMoreData() }
如果是这个方案,考虑的地方就很多,感觉还是需要在sm的状态上做文章
你使用refreshing的生命周期是什么?
建议在ViewCreated中使用
你使用refreshing的生命周期是什么?
建议在ViewCreated中使用
如果是Act呢?
Act也有类似View创建好的生命周期吧
自定义View的attachToWindow生命周期是这样的, Act.onCreate -> Act.onResume -> Act.onAttachedToWindow -> View.onAttachedToWindow 所以我说加一个post能解决,但是如果加了post的话,考虑的地方就很多
@liangjingkanji 最新的PR #442 我测了一下可以修复,你那边要么从其他角度看看?我自己尝试了我能想到的finish均无问题
不行,如果加延迟异步执行,解决问题,但是存在一个细节,如果进入页面快速去进行下拉操作是无法下拉的
调用refresh后再16ms内调用finish必现。
调用refresh后再16ms内调用finish必现。
他就是因为异步的原因,导致状态不一致,因为SM没有refreshing的方法,所以没问题,看大佬最近忙,自己临时方案解决一下吧,等他后续看看能不能修复
问题描述
下拉刷新组件失效
期望结果
正常刷新
如何复现
Fork:https://github.com/ChawLoo/BRV 已复现,启动即TestAct
截图
下拉组件失效了,整个APP并未卡住,下拉回调已经没了,动画效果也不回弹了
版本