在 CollapsingToolbarLayout 中设置 minHeight 没有任何效果

setting minHeight in CollapsingToolbarLayout not having any effect

我目前遇到的 CollapsingToolbarLayout 的主要问题是,无论我尝试什么,我的工具栏的 minHeight 属性都没有任何效果。

我想要的结果是这样的: (CollapsingToolbarLayout 具有一定的展开高度和一定的折叠高度(示例中为 180dp),而标题折叠或保持在顶部)

但是无论我做什么,标题有时都在中间,不会完全折叠或者 minHeight 无论如何都会被忽略。我尝试为 AppBarLayout、CollapsingToolbarLayout、工具栏本身、任何内容等设置 minHeight,也尝试使用在网络上找到的不同方法,但没有成功。

这是基本的xml:

<android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:minHeight="180dp">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true"
            app:contentScrim="@android:color/transparent"
            app:expandedTitleGravity="bottom"
            app:expandedTitleTextAppearance="@style/TextAppearence.App.ToolbarTitle"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:statusBarScrim="@android:color/transparent">

            <com.xxxxxx.custom.Banner
                android:id="@+id/parallax_image"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                android:src="@drawable/xxxxxxxx"
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.6"
                app:layout_scrollFlags="scroll" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:minHeight="180dp"
                app:layout_collapseMode="pin" />

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

我希望这些内容足以解释我的问题。 感谢任何帮助,谢谢!

您可以将高度设置为180dp而不是minHeight,然后在工具栏中添加一个TextView作为标题。

这个很简单。只需将 Toolbar 的底部边距设置为您希望在折叠版本中保留的任何 space。

这背后的原因很简单。 CollapsingToolbarLayout 继承自 FrameLayout,后者将图像堆叠在一起。在考虑折叠边界时,它唯一考虑的是工具栏高度及其顶部/底部边距。

只需将 Toolbar collapseMode 设置为 "pin" 模式,并将高度设置为您需要的尺寸

 <androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    app:layout_collapseMode="pin"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>