Open loopq opened 1 month ago
这周的需求完成了,有点时间来补充一下后续。 我的场景是 Appbar + RecyclerView嵌套滑动,顶层是作者的SecondFloorBehavior,滑动冲突的原因是 CoordinatorLayout内部有一套和事件分发类似的机制,Down事件的时候会分发拿到处理的 behavior并存储,然后后续的事件直接传递给此behavior。
作者的SecondFloorBehavior.onInterceptEvent() 在一楼的时候一定会返回true消费事件,导致 AppbarLayout.ScrollBehavior 接收不到事件。这种情况如果是自定义View可以重写dispatchTouchEvent来实现自己的逻辑,但是behavior是下游无法触及到分发流程,我总不能把CoordinatorLayout复制出来重写一份逻辑吧。
先搁置,看看后来者有没有什么好的思路和解决方法。
Demo拉下来之后,运行完美。
但一般项目里首页都是嵌套布局,比如 CoordinatorLayout + Appbar + ViewPager ,实测Appbar如果配置 scrollFlags = "scroll|exitUntilCollapsed",会有滑动冲突问题,普通的嵌套滑动 scrollFlags="scroll" 下拉二楼也出不来