【问题标题】:Fixed header with CoordinatorLayout showing shadow when scrolling修复了带有 CoordinatorLayout 的标题在滚动时显示阴影
【发布时间】:2016-10-29 12:40:42
【问题描述】:

经典的协调器布局为您提供以下[source]

但是,我不希望顶部标题视图滚动,直到它们“变成”固定在顶部的工具栏,下方带有阴影。我希望它们全部固定(或固定),但要显示阴影,只有嵌套的滚动视图开始在固定的滚动视图下滚动。类似于 Marshmallow 设备上的主应用程序抽屉,其中“搜索栏”被固定,应用程序列表在其下方滚动。

希望我说清楚了。有没有什么简单的方法可以在不监听滚动事件并手动处理的情况下实现这一目标?

编辑

这是我想要实现的目标:

。请注意,在右图中,由于用户滚动了列表,应用列表下方现在出现了阴影。

谢谢!

【问题讨论】:

  • 不太确定您要的是什么。您在帖子中显示的是CollapsingToolbarLayout。折叠行为不同于滚动行为。 AppBarLayout 本身可以滚动工具栏,同时固定其他应用栏视图。这有帮助吗?也许您可以发布一些图表,说明您希望应用在滚动前后的外观。
  • @krislarson 谢谢!我从 Marshmallow 的应用程序抽屉中添加了一个示例。注意首先没有阴影,然后它在用户滚动时出现。我想要一个工具栏+一个带有子视图的线性布局。在视图上设置app:layout_collapseMode="pin" 对我不起作用。 :(
  • 您应该可以使用CollapsingToolbarLayout 执行此操作。您可以发布您的布局 XML 吗?我确实发现最新的支持库正在使用状态列表动画器来控制AppBarLayout 的高度,请参阅此答案:stackoverflow.com/a/32393698/4504191
  • @krislarson 谢谢。我没有折叠工具栏,也没有找到修复(或固定)工具栏和我想要固定在顶部的其他视图的选项。此外,将阴影设置为始终显示或始终使用高程隐藏都没有问题。我不明白的是如何让它只在我在固定视图下滚动时才出现。
  • 您找到解决方案了吗?

标签: android android-coordinatorlayout coordinator-layout


【解决方案1】:

这正是您要找的:HideOnScroll

【讨论】:

  • 这个要点和博文太棒了。但它使用AppBarLayout.OnOffsetChangeListener,这意味着您需要一个滚动的 AppBar 才能使用该技术。如果您有一个无法正常工作的固定 AppBar/Toolbar。
  • 请从链接中发布相关信息,因为不鼓励仅链接答案
【解决方案2】:

最初将 actionBar 高度设置为 0。将滚动侦听器添加到您的滚动元素。当您检测到它已滚动(dy > 0)时,您将 actionBar 高度设置为 4dp(默认的 actionBar 高度)并在 dy == 0 时返回到 0dp。

在你的滚动监听器中,至少对于 recyclerViews,你可以使用 canScrollVertically 函数来检查你是否在顶部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2011-09-25
    • 2013-02-05
    • 2017-02-05
    相关资源
    最近更新 更多