我在我正在处理的应用中遇到View
层次结构的问题。
其中一个屏幕看起来像这样:
<CoordinatorLayout>
<AppBarLayout>
<Toolbar/>
</AppBarLayout>
<RecyclerView>
... items, some of which are horizontal Recyclers...
</RecyclerView>
</CoordinatorLayout>
整个想法是在向下滚动Toolbar
内容时很好地获得RecyclerView
视差。
整个过程相当不错,但是提到的视差行为存在问题(使用自定义AppBarLayout.ScrollingViewBehavior
实现完成)。
有两种情况,具体取决于用户在滚动时关注的项目:
Toolbar
视差进出。RecyclerView
将按预期滚动,但视差行为不会触发,使布局处于奇怪的中间状态。知道为什么会发生这种情况以及如何获得正确的行为,即事件一直传递到CoordinatorLayout
?
答案 0 :(得分:5)
对于每个sub-recyclerView,您需要致电
setNestedScrollingEnabled(false)
在该RecyclerView上(您可以从用于主循环回收视图的任何视图中创建此子视图)。这是嵌套滚动中当前已知的错误。如果我猜测,我会说它可能与嵌套滚动布局不应该向父母发送嵌套滚动通知符这一事实有关,如果它们在没有滚动轴的方向上滚动,如果这是有道理的。