CollapsingToolbarLayout設定contentScrim,當剩餘摺疊高度是ToolBar高度的兩倍的時候,contentScrim設定的背景就出現了。

Silas_發表於2017-07-14

思路

既然根據Google的XML程式碼沒辦法實現這個功能,那麼是不是有這麼一個程式碼可以監聽到AppBarLayout的滑動狀態?

解決方案

    @BindView(R.id.app_bar_ayout)
    AppBarLayout mAppBarAyout;
    @BindView(R.id.coolapsing_toolbar)
    CollapsingToolbarLayout mCoolapsingToolbar;

       /**
        * 監聽滑動狀態
        */
    mAppBarAyout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener()
        {
            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset)
            {
                if (verticalOffset == 0)
                {
                    KLog.e("展開狀態");
                    mCoolapsingToolbar.setContentScrim(null);
                }
                else if (Math.abs(verticalOffset) >= appBarLayout.getTotalScrollRange())
                {
                    KLog.e("摺疊狀態");
                    mCoolapsingToolbar.setContentScrimResource(R.drawable.shape_main_title);
                }
                else
                {
                    KLog.e("中間狀態");
                    mCoolapsingToolbar.setContentScrim(null);
                }
            }
        });
    }

佈局

 <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_ayout"
        style="@style/match_wrap">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/coolapsing_toolbar"
            style="@style/match_wrap"
            silas:contentScrim="@drawable/shape_main_title"
            silas:layout_collapseMode="parallax"
            silas:layout_scrollFlags="scroll|exitUntilCollapsed">

            <com.youth.banner.Banner
                android:id="@+id/banner"
                style="@style/match_parent"
                android:layout_height="@dimen/dimen_170"
                android:scaleType="fitXY"
                silas:layout_collapseMode="parallax"
                silas:layout_collapseParallaxMultiplier="0.7"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?android:actionBarSize"
                silas:layout_collapseMode="pin">

                <RelativeLayout
                    android:id="@+id/ll_navigation_bar"
                    style="@style/match_parent"
                    android:background="@null">

                    <ImageView
                        android:id="@+id/iv_user_center"
                        android:layout_width="@dimen/dimen_35"
                        android:layout_height="@dimen/dimen_35"
                        android:layout_centerVertical="true"
                        android:src="@mipmap/ic_mine_head_portrait"/>

                    <TextView
                        android:id="@+id/tv_search"
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/dimen_35"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="@dimen/dimen_20"
                        android:layout_marginRight="@dimen/dimen_20"
                        android:layout_toLeftOf="@+id/iv_download"
                        android:layout_toRightOf="@+id/iv_user_center"
                        android:background="@drawable/shape_rect_big_corners_white"
                        android:drawableLeft="@mipmap/ic_home_search"
                        android:drawablePadding="@dimen/dimen_5"
                        android:gravity="center_vertical"
                        android:paddingLeft="@dimen/dimen_15"
                        android:textColor="@color/color_gray_cccccc"
                        android:textSize="@dimen/font_16"/>

                    <ImageView
                        android:id="@+id/iv_download"
                        android:layout_width="@dimen/dimen_35"
                        android:layout_height="@dimen/dimen_35"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:layout_marginRight="@dimen/dimen_15"
                        android:src="@mipmap/ic_home_download"/>
                </RelativeLayout>
            </android.support.v7.widget.Toolbar>

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

相關文章