问题描述:
当在CooridnatoryLayout中嵌套AppBarLayout + RecyclerView时, 发现一个问题. 当RecyclerView快速滑动到底部, 原来的加载更多功能不能及时触发, 需要等待一定的时间, 比如几秒种, 才会触发加载更多. 检查发现, 是因为RecyclerView 的onScrollStateChanged()回调没有及时调用, 为什么会这样的, 原来是快速滑动时, 触发了一个fling, RecyclerView一直等到这fling结束才调用onScrollStateChanged()回调方法.
实际上这个问题在这里有更深入的讨论:
https://stackoverflow.com/questions/48204549/recyclerview-scroll-state-idle-is-being-called-late
https://issuetracker.google.com/issues/66996774
里面也附带了chrisbanes的解决方法.
我自己通过监听RecyclerView的状态, 也整理了一份解决方法. 放在下面这个地址了:
https://github.com/shaopx/RecyclerView66996774Workaround
2018.9.13 掘金上也有类似的文章了:https://juejin.im/entry/5b978fe8f265da0b001f16c0 据这篇文章说最新的28rc02版本已经解决这问题, 但我没有验证, 请升级最新版本试试吧.