Material Design學習-----CollapsingToolbarLayout

  博客引用(http://www.open-open.com/lib/view/open1438265746378.html)html

  CollapsingToolbarLayout爲咱們提供了一個很方便的頂部停靠實現的辦法,他提供了一個能夠摺疊的Toolbar,它繼承至FrameLayout,給它設置layout_scrollFlags,它能夠控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在響應layout_behavior事件時做出相應的scrollFlags滾動事件(移除屏幕或固定在屏幕頂端)。android

 1 <android.support.design.widget.CoordinatorLayout
 2     xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     tools:context=".MainActivity">
 8     <android.support.design.widget.AppBarLayout
 9         android:layout_width="match_parent"
10         android:layout_height="256dp"
11         android:fitsSystemWindows="true">
12         <android.support.design.widget.CollapsingToolbarLayout
13             android:id="@+id/collapsing_toolbar_layout"
14             android:layout_width="match_parent"
15             android:layout_height="match_parent"
16             app:contentScrim="#30469b"
17             app:expandedTitleMarginStart="48dp"
18             app:layout_scrollFlags="scroll|exitUntilCollapsed">
19             <ImageView
20                 android:layout_width="match_parent"
21                 android:layout_height="match_parent"
22                 android:scaleType="centerCrop"
23                 android:src="@mipmap/title_bg"
24                 app:layout_collapseMode="parallax"
25                 app:layout_collapseParallaxMultiplier="0.7"  />
26             <android.support.v7.widget.Toolbar
27                 android:id="@+id/toolbar"
28                 android:layout_width="match_parent"
29                 android:layout_height="?attr/actionBarSize"
30                 app:layout_collapseMode="pin" />
31         </android.support.design.widget.CollapsingToolbarLayout>
32     </android.support.design.widget.AppBarLayout>
33     <LinearLayout
34         android:layout_width="match_parent"
35         android:layout_height="match_parent"
36         android:orientation="vertical"
37         app:layout_behavior="@string/appbar_scrolling_view_behavior">
38         <android.support.v7.widget.RecyclerView
39             android:id="@+id/recyclerView"
40             android:layout_width="match_parent"
41             android:layout_height="match_parent"
42             android:scrollbars="none" />
43     </LinearLayout>
44 </android.support.design.widget.CoordinatorLayout>

  從上面的代碼中能夠看出:在CollapsingToolbarLayout中一個包含了兩個東西:一個ImageView和一個Toolbar。並把這個CollapsingToolbarLayout放到AppBarLayout中做爲一個總體。app

  一、在CollapsingToolbarLayout中,layout_scrollFlags的值的說明:字體

  • scroll - 想滾動就必須設置這個。ui

  • enterAlways - 實現quick return效果, 當向下移動時,當即顯示View(好比Toolbar)。spa

  • exitUntilCollapsed - 向上滾動時收縮View,但能夠固定Toolbar一直在上面。3d

  • enterAlwaysCollapsed - 當你的View已經設置minHeight屬性又使用此標誌時,你的View只能以最小高度進入,只有當滾動視圖到達頂部時才擴大到完整高度。code

其中還設置了一些屬性,簡要說明一下:xml

  • contentScrim - 設置當徹底CollapsingToolbarLayout摺疊(收縮)後的背景顏色。htm

  • expandedTitleMarginStart - 設置擴張時候(尚未收縮時)title向左填充的距離。

  二、在imageView中咱們能夠設置:

  • layout_collapseMode (摺疊模式) - 有兩個值:

    • pin -  設置爲這個模式時,當CollapsingToolbarLayout徹底收縮後,Toolbar還能夠保留在屏幕上。

    • parallax - 設置爲這個模式時,在內容滾動時,CollapsingToolbarLayout中的View(好比ImageView)也能夠同時滾動,實現視差滾動效果,一般和layout_collapseParallaxMultiplier(設置視差因子)搭配使用。

  • layout_collapseParallaxMultiplier(視差因子) - 設置視差滾動因子,值爲:0~1。 

三、在Toolbar控件中:

  咱們設置了layout_collapseMode(摺疊模式):爲pin。

  綜上分析:當設置了layout_behavior的控件響應起了CollapsingToolbarLayout中的layout_scrollFlags事件時,ImageView會有視差效果的向上滾動移除屏幕,當開始摺疊時  CollapsingToolbarLayout的背景色(也就是Toolbar的背景色)就會變爲咱們設置好的背景色,Toolbar也一直會固定在最頂端。

【注】:使用CollapsingToolbarLayout時必須把title設置到CollapsingToolbarLayout上,設置到Toolbar上不會顯示。即:

  mCollapsingToolbarLayout.setTitle(" ");

  該變title的字體顏色:

  擴張時候的title顏色:mCollapsingToolbarLayout.setExpandedTitleColor();

  收縮後在Toolbar上顯示時的title的顏色:mCollapsingToolbarLayout.setCollapsedTitleTextColor();

  這個顏色的過分變化其實CollapsingToolbarLayout已經幫咱們作好,它會自動的過分,好比咱們把收縮後的title顏色設爲綠色,效果如圖:

  

相關文章
相關標籤/搜索