Glide + CollapsingToolbarLayout 奇怪的行为

Glide + CollapsingToolbarLayout strange behavior

我在使用 CollapsingToolbarLayout、工具栏和嵌入的 ImageView 时遇到了一个奇怪的行为。 这是我的代码:

<android.support.design.widget.AppBarLayout
        android:id="@+id/bla"
        android:layout_width="match_parent"
        android:layout_height="256dp">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/md_white_1000"
                android:minHeight="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
                app:theme="@style/ThemeOverlay.AppCompat.Light" />

            <ImageView
                android:id="@+id/fragment_kids_profile_pic"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

Glide 构建器:

Glide.with(getActivity())
                .load(file)
                .fitCenter()
                .into(profilePicture);

在通过 Glide 设置图像之前,工具栏的行为完全正常,就我而言 "pinned"。设置图像后,工具栏布局消失,图像出现(向上滚动后)。 一些图片来澄清:

设置图片前:

如有任何帮助,我们将不胜感激!

发生这种情况是因为 CollapsingToolbarLayout 扩展了 FrameLayout。 在 FrameLayout 中,视图层次结构中的最后一个视图位于顶部(如果您没有在代码中更改它),因此您的 ImageView 覆盖 Toolbar 是正常的。要解决此问题 "issue",您只需更改顺序:

<android.support.design.widget.AppBarLayout
    android:id="@+id/bla"
    android:layout_height="256dp"
    android:layout_width="match_parent">

    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            android:id="@+id/fragment_kids_profile_pic"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:scaleType="centerCrop" />

        <android.support.v7.widget.Toolbar
            android:background="@color/md_white_1000"
            android:id="@+id/toolbar"
            android:layout_height="?attr/actionBarSize"
            android:layout_width="match_parent"
            android:minHeight="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
            app:theme="@style/ThemeOverlay.AppCompat.Light" />
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

在通过 Glide 设置图像之前,ImageView 的背景是透明的,这就是为什么您可以看到 Toolbar