向上滚动时,CoordinatorLayout使锚定元素消失

时间:2016-10-07 09:22:34

标签: android android-coordinatorlayout android-appbarlayout

我有一个非常尴尬的问题,我无法摆脱,我绝对不明白。

我只是希望我的应用栏折叠,并且图像与应用栏区域中的某个占位符元素一起移动。 我从这个例子中得到了这个: 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; - 我不知道为什么以及为谁做这件事。

enter image description here

我检查了层次,但可见度仍然是“可见的”,没有关闭或任何东西。 enter image description here

有人可以解释这里发生了什么吗?

1 个答案:

答案 0 :(得分:4)

好的,我终于找到了这个问题的答案。

它与AppBarLayout的其他未见高程有关,该高程由包含的CollapsingToolbarLayout修改,以防万一有固定元素,只有那些仍在顶部可见。

它的意思是:&#34;只要我们滚动内容,我们就会与内容内联。一旦应用栏停止(仅剩下固定元素),我们就会抬起并让剩下的内容在下面滑动。&#34;

只有当你想要展示的所有元素实际上是CollapsingToolbarLayout的子元素时,这种行为才是整洁的,但在我的情况下,我想锚定在CoordinatorLayout内自由浮动的元素作为兄弟的兄弟姐妹。带有一些工具栏元素的app栏。但是一旦我们达到固定状态,应用栏就会在那些自由浮动且仍然锚定的元素的顶部上抬起 - 从而隐藏它们。

一种解决方案:为这些元素提供更高的高度。 : - )

或者:将AppBarLayout的高程设置为0dp。

我没有找到这个的原因很简单:包含CollapsingToolbarLayout小提琴与父母的提升......; - )