如何防止AppBarLayout扩展?

时间:2015-09-26 00:08:11

标签: android-recyclerview android-appcompat androiddesignsupport android-coordinatorlayout android-appbarlayout

我的布局看起来有点像这样:

<FrameLayout>
    <Scrollview (empty view, set GONE)>
    <LinearLayout (loading screen, set GONE)>
    <CoordinatorLayout>
         <AppBarLayout>
             <RelativeLayout scroll|enterAlways|enterAlwaysCollapsed>
         </AppBarLayout>
         <RecyclerView with layout_behavior set>
         <NestedScrollView (variation of empty layout, set GONE)>
     </CoordinatorLayout>
</FrameLayout>

在AppBarLayout中有一个带有单元格的水平RecyclerView,然后在主RecyclerView下面包含一个不同类型的单元格并垂直滚动。这在滚动时效果很好 - AppBarLayout出现并完美消失。

在两个RecyclerViews中搜索和限制结果时出现问题。当RecyclerView为空时,它应该消失 - 因此当顶部水平RecyclerView为空时,整个AppBarLayout应该消失。

为实现这一目标,我打电话给AppBarLayout.setExpanded(false) - 这是有效的。然而,在调用之后,如果我向上或向下滚动垂直RecyclerView,AppBarLayout会展开并显示自己。我也尝试重置LayoutParams scrollFlags,使它们为0,这应该禁用滚动。 AppBarLayout不再滚动 - 但它仍然会扩展。

如何完全阻止AppBarLayout扩展?我需要关闭它,并强制它保持关闭,直到我重置它,无论用户做什么。

1 个答案:

答案 0 :(得分:1)

在另一个地方,我设置了一个滚动侦听器来展开顶部的视图。这引发了不应该扩张的地方。