当使用CoordinatorLayout滚动时,固定标题会显示阴影。

5
经典的协调器布局提供以下[源代码]coordinator layout 然而,我不想让顶部标题视图滚动,直到它们“变成”固定在顶部的工具栏,并带有下面的阴影。我想让它们全部固定(或固定),但只有当嵌套滚动视图开始在固定的视图下滚动时才显示阴影。类似于 Marshmallow 设备上的主应用程序抽屉,其中“搜索栏”被固定,应用程序列表在其下滚动。
希望我表述清楚了。有没有什么简单的方法可以实现这一点,而不必监听滚动事件并手动处理?
编辑:
这就是我要实现的:
注意右侧图像中,由于用户滚动列表,应用程序列表下方现在有一个阴影。

不太确定您在寻求什么。您在帖子中展示的是“CollapsingToolbarLayout”。折叠行为与滚动行为是不同的。单独使用“AppBarLayout”可以滚动工具栏并固定其他应用栏视图。这有帮助吗?也许您可以在滚动前后发布一些关于您想要应用程序外观的图表。 - kris larson
@krislarson 谢谢!我添加了一个来自Marshmallow应用抽屉的示例。请注意,首先没有阴影,然后当用户滚动时它出现了。我想要同样的效果,适用于工具栏+线性布局,并且包含内部子视图。将app:layout_collapseMode="pin"设置在视图上对我来说没有生效。:( - Testing Here
你应该可以使用CollapsingToolbarLayout来实现这个功能。你能把你的布局XML贴出来吗?我发现最新的支持库正在使用状态列表动画来控制AppBarLayout的高度,参见这个答案:https://dev59.com/310Z5IYBdhLWcg3wvSZ2#32393698 - kris larson
@krislarson 谢谢。我不想折叠工具栏,而且没有找到固定(或固定)工具栏和其他我希望固定在顶部的视图的选项。另外,我不介意使用 elevation 来始终显示或始终隐藏阴影。我不明白的是如何使它仅在滚动到固定视图下方时才出现。 - Testing Here
1
你找到了这个问题的解决方案吗? - Bri6ko
2个回答

2

1
这个代码片段和博客文章非常棒。但是它使用了 AppBarLayout.OnOffsetChangeListener,这意味着您需要一个可滚动的 AppBar 才能使用该技术。如果您有一个固定的 AppBar/Toolbar,那么这种方法就不适用了。 - tasomaniac
1
请提供与链接相关的信息,因为仅提供链接的回答是不被鼓励的。 - Spikatrix

0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接