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

时间:2016-05-31 22:32:01

标签: android xml android-layout material-design android-toolbar

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

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

enter image description here

但无论我做什么,标题有时都在中心,不会完全崩溃或无论如何都会忽略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>

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

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

只需将工具栏崩溃模式设置为“固定”模式,并将高度设置为所需大小

 <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"/>