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

Posted

技术标签:

【中文标题】在 CollapsingToolbarLayout 中设置 minHeight 没有任何效果【英文标题】:setting minHeight in CollapsingToolbarLayout not having any effect 【发布时间】:2016-09-30 02:46:54 【问题描述】:

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

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

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

这是基本的xml:

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

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_
            android:layout_
            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_
                android:layout_
                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_
                android:layout_
                android:minHeight="180dp"
                app:layout_collapseMode="pin" />

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

我希望这足以解释我的问题。 任何帮助表示赞赏,谢谢!

【问题讨论】:

【参考方案1】:

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

【讨论】:

通过添加自定义 TextView 作为标题进行了一些调整。无论如何,我无法让它与扩展或折叠工具栏一起使用...... 180dp 是从哪里来的?【参考方案2】:

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

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

【讨论】:

工作就像一个魅力,非常感谢您花费额外的时间来解释答案!【参考方案3】:

只需将 Toolbar collapseMode 设置为“pin”模式,并根据您的要求大小设置高度

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

【讨论】:

以上是关于在 CollapsingToolbarLayout 中设置 minHeight 没有任何效果的主要内容,如果未能解决你的问题,请参考以下文章

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

设置 CollapsingToolbarLayout 的起始高度

展开状态下没有阴影的 CollapsingToolbarLayout

CollapsingToolbarLayout 并在滚动时隐藏工具栏

如何在 CollapsingToolbarLayout 中使用带有 Toolbar 的 TabLayout?

Android Material Design之CollapsingToolbarLayout使用