从下面的示例中可以看到,将视图的可见性从“不可见”更改为“可见”,反之亦然,应用程序栏会自动展开,并显示绘制的稀松布。

<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

由于我不知道您想要什么行为,因此请阅读文章并选择自己。隐藏和显示视图会触发这些标志。

10-07 19:40
查看更多