【问题标题】:How can an AppBarLayout be prevented from expanding?如何防止 AppBarLayout 扩展?
【发布时间】:2015-09-26 00:08:10
【问题描述】:

我的布局有点像这样:

<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-recyclerview android-appcompat androiddesignsupport android-coordinatorlayout android-appbarlayout


    【解决方案1】:

    在另一个地方,我设置了一个滚动监听器来展开顶部的视图。这触发了不应有的展开。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 2016-03-12
      • 2015-11-10
      • 1970-01-01
      • 2018-12-26
      • 1970-01-01
      相关资源
      最近更新 更多