当使用EnterAlwaysCollapsed时,向下滚动页面无法恢复工具栏。

4
我正在使用layout_scrollFlags="scroll|enterAlwaysCollapsed"与工具栏的minHeight0dip,目的是仅在我的RecyclerView中第一个可见的项目可见时才重新显示Toolbar(而不是像enterAlways一样,每当滚动RecyclerView时立即将其带回)。然而,工具栏在我将其滚动到屏幕外后从未再次显示。我错过了什么?

1
请展示您的布局文件。 - Ilya Blokh
你看过 cheesesquare 应用吗? - tachyonflux
@karaokyo,我通过尝试Cheesesquare应用程序找到了解决方案,谢谢。如果您提供一个链接到该应用程序的还算不错的答案,我会接受并给予您奖励。 - josephus
1
@josephus,你的问题相当模糊,这就是为什么很难回答并且我不想回答的原因。我已经在你的另一个问题上得到了赏金,那个问题也是同样的问题。对于未来的问题,创建一个MCVE可能会很有帮助。然后,你甚至可能不需要提供赏金来获得答案!话虽如此,我当然会喜欢+150。 - tachyonflux
2个回答

3
请查看设计支持库示例应用程序:cheesesquare 实现你所描述的行为的正确方式就是仅使用滚动标志:
layout_scrollFlags="scroll"

1
很难在没有看到你的代码的情况下说出答案,猜测可能是以下两种情况之一:

1.

似乎存在一个问题,当设置的最小高度大于零时,视图会从屏幕上消失。然后在向下滚动开始时返回最小高度,并在滚动到顶部时返回完整高度。

我认为你的零最小高度可能会干扰你的返回。如果滚动视图以非零最小高度消失,谁知道会发生什么导致这种情况,零最小高度可能会使这个 bug 无法返回。

请查看此处 video 找到的链接 http://inthecheesefactory.com/blog/android-design-support-library-codelab/en ,页面中部位置。

我引用了这个页面的话:

enterAlwaysCollapsed - 此标记定义了视图重新进入屏幕的方式。当您的视图已声明minHeight并使用此标记时,您的视图将仅以其最小高度(即“折叠”)进入,并在滚动视图到达顶部时重新展开到完整高度。与滚动标志一起使用,如下所示:scroll|enterAlwaysCollapsed。 不过似乎它在minHeight方面的描述不起作用。

2.

你的代码格式不正确。

引用自Android开发者博客上的“CoordinatorLayout和应用栏”:

需要注意的一点是,所有使用滚动标志的视图必须在不使用该标志的视图之前声明。这确保了所有视图从顶部退出,留下固定的元素。

此链接还详细介绍了如何使用enterAlwaysCollapsed,值得一看。

如果这解决了你的问题,请告诉我。


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