从下面的示例中可以看到,将视图的可见性从“不可见”更改为“可见”,反之亦然,应用程序栏会自动展开,并显示绘制的稀松布。
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/crl_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:fillViewport="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/abl_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:contentScrim="@drawable/shape_rectangle_grdient_red_yellow"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="parallax">
<FrameLayout
android:id="@+id/fl_class"
android:layout_width="match_parent"
android:layout_height="@dimen/d_280dp"
android:background="@color/colorPlaceholderBg">
<ImageView
android:id="@+id/iv_class"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@color/colorPlaceholderBg" />
<ProgressBar
android:id="@+id/pb_dp_progress"
android:layout_width="@dimen/d_20dp"
android:layout_height="@dimen/d_20dp"
android:layout_gravity="center"
android:visibility="visible" />
</FrameLayout>
<RelativeLayout
android:id="@+id/rl_toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_default_height"
android:background="@drawable/shape_rectangle_transparent_grey_gradient">
<ImageView
android:id="@+id/iv_back"
... />
</RelativeLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/tl_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:minHeight="@dimen/toolbar_default_height"
android:visibility="visible"
app:contentInsetStart="@dimen/d_0dp"
app:layout_collapseMode="pin">
<include layout="@layout/view_toolbar" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/fragment_class_details_content" />
</android.support.design.widget.CoordinatorLayout>
这是外部布局的代码。从上面的布局可以看出,该图案大部分是标准的。我试图在新示例中复制该错误,但没有用。最初的问题似乎是在运行时更改嵌套滚动视图的高度,这似乎是问题所在,但事实并非如此。我试图在按钮的单击上设置setExpand(false),但效果不佳。
<a href="https://imgur.com/YGTT3oL"><img src="https://i.imgur.com/YGTT3oL.gif" title="source: imgur.com" /></a>
链接到演示gif在这里:https://i.imgur.com/YGTT3oL.gif
最佳答案
我敢打赌,问题是由app:layout_scrollFlags =“ scroll | exitUntilCollapsed | snap”引起的
您必须定义滚动时所需的行为,请查看本文:https://medium.com/martinomburajr/android-design-collapsing-toolbar-scrollflags-e1d8a05dcb02
由于我不知道您想要什么行为,因此请阅读文章并选择自己。隐藏和显示视图会触发这些标志。