SmoothAppBarLayout 折叠的工具栏高度大于预期

SmoothAppBarLayout collapsed toolbar height is bigger than intended

我最近用 SmoothAppBarLayout

更改了我的 AppBarLayout

它更流畅、更快,所以我对结果很满意。但这不知何故改变了我的工具栏高度,我还不能修复它。

折叠的工具栏的高度应该是 'actionBarSize' 但它比那个大。

这与工具栏标题无关,禁用或更改它的填充不起作用。但这是关于行为的。

设置如下所示的新行为可以解决问题,但我想要一个合适的解决方案。

    AppBarLayout.Behavior behavior = new AppBarLayout.Behavior();
    params.setBehavior(behavior);

第一张图片显示的是预期尺寸,第二张图片显示的是实际尺寸。

这是我的XML的部分:(因为太长没有全部放)

    <me.henrytao.smoothappbarlayout.SmoothAppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="210dp"
        android:minHeight="50dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:sabl_target_id="@id/nestedScrollView">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/transparent"
            android:fitsSystemWindows="true"
            android:minHeight="210dp"
            app:contentScrim="@color/dark_gray_actionbar"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="210dp"
                android:orientation="vertical"
                app:layout_collapseMode="parallax">

                <ImageView
                    android:id="@+id/serviceImage"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:contentDescription="Servis Fotoğrafı"
                    android:scaleType="centerCrop"
                    android:src="@drawable/gray_color_gradient"
                    app:layout_collapseMode="parallax" />
            </RelativeLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?actionBarSize"
                android:layout_alignParentTop="true"
                android:layout_gravity="center_horizontal"
                app:layout_collapseMode="pin">

            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.CollapsingToolbarLayout>
    </me.henrytao.smoothappbarlayout.SmoothAppBarLayout>

    <include
        layout="@layout/get_quote_layout"
        android:layout_width="match_parent"
        android:layout_height="64dp"
        app:layout_anchor="@id/nestedScrollView"
        app:layout_anchorGravity="bottom"
        app:layout_collapseMode="pin" />


</android.support.design.widget.CoordinatorLayout>

我认为问题来自 fitSystemWindows。您可以按如下方式简化您的布局:

...
<me.henrytao.smoothappbarlayout.SmoothAppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:sabl_target_id="@id/nestedScrollView">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsingToolbarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/transparent"
        app:contentScrim="@color/dark_gray_actionbar"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="210dp"
            android:orientation="vertical"
            app:layout_collapseMode="parallax">

            <ImageView
                android:id="@+id/serviceImage"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:contentDescription="Servis Fotoğrafı"
                android:scaleType="centerCrop"
                android:src="@drawable/gray_color_gradient"
                app:layout_collapseMode="parallax" />
        </RelativeLayout>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?actionBarSize"
            android:layout_alignParentTop="true"
            android:layout_gravity="center_horizontal"
            app:layout_collapseMode="pin">

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.CollapsingToolbarLayout>
</me.henrytao.smoothappbarlayout.SmoothAppBarLayout>
...