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',它要么折叠要么展开。
在我的应用程序中,我使用的是 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',它要么折叠要么展开。