我的布局看起来有点像这样:
<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扩展?我需要关闭它,并强制它保持关闭,直到我重置它,无论用户做什么。
答案 0 :(得分:1)
在另一个地方,我设置了一个滚动侦听器来展开顶部的视图。这引发了不应该扩张的地方。