首页 > 解决方案 > 使用两个AppBaLayout,滚动RecyclerView的时候

问题描述

我有活动布局结构,如:

<DrawerLayout>
	<CoordinatorLayout>
	    <AppBarLayout>
	        <Toolbar app:layout_scrollFlags="scroll|enterAlways"/>
	    </AppBarLayout>

	    <fragment app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
	</CoordinatorLayout>	
</DrawerLayout>

我有内部片段:

<CoordinatorLayout>
    <AppBarLayout>
        <include layout="@layout/some_view" app:layout_scrollFlags="scroll|enterAlways"/>
    <AppBarLayout>

    <RecyclerView app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</CoordinatorLayout>

样本布局:

样本布局

我想在滚动 RecyclerView 上实现下一个案例:

  1. 折叠工具栏
  2. 折叠 some_view
  3. 开始滚动 RecyclerView

如果从片段中删除 AppBarLayout 并将 some_view 移动到第一个 AppBarLayout 中,则可以轻松完成。但是我有很多片段,每个片段都有不同的 some_view,我想把所有片段相关的东西放在一个地方。

我试图在 RecyclerView 的 onScrolled 侦听器中为 some_view 添加/删除滚动标志。我还尝试从片段中删除 AppBarLayout 并在 RecyclerView 的 onScrolled 侦听器中手动折叠 some_view,但它需要复杂的逻辑。

你能建议我如何以正确的方式实现我的滚动案例吗?

标签: androidandroid-recyclerviewscrollandroid-collapsingtoolbarlayoutandroid-appbarlayout

解决方案



推荐阅读