为什么CollapsingToolbarLayout在展开的内容下放置一个空白区域

时间:2018-11-20 12:00:54

标签: android material-design android-toolbar android-collapsingtoolbarlayout

我正在尝试使用CollapsingToolbarLayout,但是在我的内容下留了这个蓝色空格。收合状态不存在此问题。

展开的内容下的空白空间似乎等于状态栏的高度。我不明白为什么会这样。 我的xml看起来像这样

    <android.support.design.widget.CoordinatorLayout
        android:fitsSystemWindows="true" ...>

        <android.support.design.widget.AppBarLayout
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:fitsSystemWindows="true" ...>

            <android.support.design.widget.CollapsingToolbarLayout
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:fitsSystemWindows="true"
                  app:contentScrim="@color/colorPrimary"
                  app:layout_scrollFlags="scroll|snap|exitUntilCollapsed|enterAlwaysCollapsed"
                  app:statusBarScrim="@android:color/transparent">

                 <android.support.constraint.ConstraintLayout
                      android:id="@+id/expanded_toolbar"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:fitsSystemWindows="true"
                      app:layout_collapseMode="parallax".../>

             <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:elevation="6dp"
                android:minHeight="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:navigationIcon="?attr/homeAsUpIndicator"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
                    <android.support.constraint.ConstraintLayout.../>
               </android.support.v7.widget.Toolbar>

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

更新

我暂时找到了解决方法

collapsingToolbar.post {
            val params = (collapsingToolbar.layoutParams as ViewGroup.MarginLayoutParams)
            params.height = findViewById<View>(R.id.expanded_toolbar).height
            collapsingToolbar.layoutParams = params
        }

2 个答案:

答案 0 :(得分:0)

我认为您应该尝试将layout_height的{​​{1}}更改为collapsing toolbar而不是wrap_content

我认为蓝色是由于折叠式工具栏中的工具栏所致。因此,您应确保将背景应用于应用栏布局或折叠的工具栏布局。

但是,这可能会导致问题,因为您使用的是图像背景,而不仅仅是颜色。因此,我建议您跟踪折叠的工具栏的状态(折叠状态还是打开状态),并相应地更新背景。

答案 1 :(得分:0)

在CollapsingToolbarLayout内部的约束中设置“ match_parent”对我有用:

<android.support.constraint.ConstraintLayout
                      android:id="@+id/expanded_toolbar"
                      android:layout_width="match_parent"
                      android:layout_height="match_parent"
                      android:fitsSystemWindows="true"
                      app:layout_collapseMode="parallax".../>