如何防止 AppBarLayout 展开?
How can an AppBarLayout be prevented from expanding?
-
android-appcompat
-
android-recyclerview
-
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 完美地出现和消失。
在两个RecyclerView中搜索和限制结果时出现问题。当任一 RecyclerView 为空时,它应该消失 - 因此当顶部水平 RecyclerView 为空时,整个 AppBarLayout 应该消失。
为了实现这一点,我正在调用 AppBarLayout.setExpanded(false)
- 这是有效的。但是,在调用它之后,如果我向上或向下滚动垂直 RecyclerView,AppBarLayout 会展开并显示自身。我也试过重置 LayoutParams scrollFlags 使它们为 0,这应该会禁用滚动。 AppBarLayout 不再滚动 - 但它仍然展开。
如何才能完全阻止 AppBarLayout 展开?我需要关闭它,并强制它保持关闭状态,直到我重新设置它为止,无论用户做什么。
在另一个地方,我设置了一个滚动侦听器来展开顶部的视图。这触发了它不应该的扩展。
android-appcompat
android-recyclerview
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 完美地出现和消失。
在两个RecyclerView中搜索和限制结果时出现问题。当任一 RecyclerView 为空时,它应该消失 - 因此当顶部水平 RecyclerView 为空时,整个 AppBarLayout 应该消失。
为了实现这一点,我正在调用 AppBarLayout.setExpanded(false)
- 这是有效的。但是,在调用它之后,如果我向上或向下滚动垂直 RecyclerView,AppBarLayout 会展开并显示自身。我也试过重置 LayoutParams scrollFlags 使它们为 0,这应该会禁用滚动。 AppBarLayout 不再滚动 - 但它仍然展开。
如何才能完全阻止 AppBarLayout 展开?我需要关闭它,并强制它保持关闭状态,直到我重新设置它为止,无论用户做什么。
在另一个地方,我设置了一个滚动侦听器来展开顶部的视图。这触发了它不应该的扩展。