Android AppBarLayout + RecyclerView 滚动监听器

Android AppBarLayout + RecyclerView ScrollListener

在我的应用程序中,我使用的是 AppBarLayout + CollapsingToolbarLayout + CoordinatorLayout。 基本上,appbarlayout 有一个带有视差的 header 和一个带有滚动 appbar 行为的 recyclerView。当滚动 recyclerView 时,我添加了一个 scrollListener

RecyclerView.OnScrollListener()

并检查了

recyclerView.computeVerticalScrollOffset()

在 RecyclerView.SCROLL_STATE_IDLE 时折叠或展开 appbarLayout。基本上,当用户结束滚动时,这将 collapse/expand appbarlayout,以防止 half-states appbarlayout。

如果用户通过触摸 recyclerView 边界内部进行滚动,则此方法有效。如果用户通过触摸 appbarlayout expanded header 进行滚动,则永远不会调用此侦听器。我该如何解决这个问题?

事实证明不再需要此解决方案。 CollapsingToolbarLayout 有一个属性 app:layout_scrollFlags="scroll|exitUntilCollapsed|snap 做的完全一样,它防止 'half states',它要么折叠要么展开。