我有一个非常尴尬的问题,我无法摆脱,我绝对不明白。
我只是希望我的应用栏折叠,并且图像与应用栏区域中的某个占位符元素一起移动。 我从这个例子中得到了这个: https://github.com/saulmm/CoordinatorBehaviorExample
我使用一个非常简单的布局:
<CoordinatorLayout>
<AppBarLayout>
<CollapsingToolbarLayout
android:minHeight="96dp"
app:layout_scrollFlags="exitUntilCollapsed|scroll">
<FrameLayout android:id="@+id/anchorPlaceHolder .../>
</CollapsingToolbarLayout>
</AppBarLayout>
<NestedScrollView ...>
<ImageView
app:layout_anchor="@id/anchorPlaceHolder
...
/>
</CoordinatorLayout>
一切都按预期工作 - 除了一个巨大的bug。 当滚动到达其顶端 - 也就是工具栏达到其最小高度 - 我的图像就会消失。它关掉了#34;&#34; - 我不知道为什么以及为谁做这件事。
我检查了层次,但可见度仍然是“可见的”,没有关闭或任何东西。
有人可以解释这里发生了什么吗?
答案 0 :(得分:4)
好的,我终于找到了这个问题的答案。
它与AppBarLayout
的其他未见高程有关,该高程由包含的CollapsingToolbarLayout
修改,以防万一有固定元素,只有那些仍在顶部可见。
它的意思是:&#34;只要我们滚动内容,我们就会与内容内联。一旦应用栏停止(仅剩下固定元素),我们就会抬起并让剩下的内容在下面滑动。&#34;
只有当你想要展示的所有元素实际上是CollapsingToolbarLayout
的子元素时,这种行为才是整洁的,但在我的情况下,我想锚定在CoordinatorLayout
内自由浮动的元素作为兄弟的兄弟姐妹。带有一些工具栏元素的app栏。但是一旦我们达到固定状态,应用栏就会在那些自由浮动且仍然锚定的元素的顶部上抬起 - 从而隐藏它们。
一种解决方案:为这些元素提供更高的高度。 : - )
或者:将AppBarLayout
的高程设置为0dp。
我没有找到这个的原因很简单:包含CollapsingToolbarLayout
小提琴与父母的提升......; - )