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
。
我在使用 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
。