CoordinatorLayout 其實就是個高級的FrameLayout,用於協調子佈局
要使用該控件,須要再gradle中加入:
compile 'com.android.support:design:24.2.1'
一、CoordinatorLayout與AppBarLayout
1 <android.support.design.widget.CoordinatorLayout 2 android:layout_height="match_parent" 3 android:layout_width="match_parent" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:android="http://schemas.android.com/apk/res/android"> 6 <android.support.design.widget.AppBarLayout 7 android:layout_width="match_parent" 8 android:layout_height="wrap_content"> 9 <android.support.v7.widget.Toolbar 10 app:layout_scrollFlags="scroll" 11 android:layout_width="match_parent" 12 android:layout_height="?attr/actionBarSize"> 13 </android.support.v7.widget.Toolbar> 14 </android.support.design.widget.AppBarLayout> 15 <android.support.v7.widget.RecyclerView 16 app:layout_behavior="@string/appbar_scrolling_view_behavior" 17 android:id="@+id/recycler" 18 android:layout_width="match_parent" 19 android:layout_height="match_parent"> 20 </android.support.v7.widget.RecyclerView> 21 </android.support.design.widget.CoordinatorLayout>
注意:代碼的第10行和第16行 @string/appbar_scrolling_view_behavior 是系統自帶的一個Behavior,咱們以後再討論,這邊先看一下 app:layout_scrollFlags="scroll"android
scroll、enterAlways、enterAlwaysCollapsed、exitUtilCollapsed、snap 五中可選app
scroll:伴隨着滾動時間滾進滾出屏幕,若是設置了其餘的flag,這個flag是必須寫上的,否則沒有效果;前面全部的子View都必須帶上這個屬性,否則沒有效果佈局
enterAlways:快速返回模式,優先滾動toolbar
gradle
enterAlwaysCollapsed :要使用這種屬性,必須設置一個minHeight,先將toolbar滾動至minHeight,而後滾動RecycylerView,滾動至頂部以後就繼續滾動toolbar,而且須要配合enterAlways一塊兒使用,不然沒有效果spa
exitUtilCollapsed:先將toolbar滾動至minHeight,而後滾動recyclerView,toolbar不會徹底滾出屏幕code
snap:toolbar滾動添加一個吸附的效果xml
二、CoordinatorLayout與CollapsingToolbarLayout
1 <android.support.design.widget.CoordinatorLayout 2 android:layout_height="match_parent" 3 android:layout_width="match_parent" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:android="http://schemas.android.com/apk/res/android"> 6 <android.support.design.widget.AppBarLayout 7 android:layout_width="match_parent" 8 android:layout_height="256dp"> 9 <android.support.design.widget.CollapsingToolbarLayout 10 android:id="@+id/collapse" 11 app:contentScrim="#30469b" 12 app:layout_scrollFlags="scroll|exitUntilCollapsed" 13 android:layout_width="match_parent" 14 android:layout_height="match_parent"> 15 <ImageView 16 app:layout_collapseMode="parallax" 17 android:scaleType="center" 18 android:src="@mipmap/timg" 19 android:layout_width="match_parent" 20 android:layout_height="match_parent" /> 21 <android.support.v7.widget.Toolbar 22 app:layout_collapseMode="pin" 23 android:id="@+id/toolbar" 24 android:layout_width="match_parent" 25 android:layout_height="?attr/actionBarSize"> 26 </android.support.v7.widget.Toolbar> 27 </android.support.design.widget.CollapsingToolbarLayout> 28 </android.support.design.widget.AppBarLayout> 29 <android.support.v7.widget.RecyclerView 30 app:layout_behavior="@string/appbar_scrolling_view_behavior" 31 android:id="@+id/recycler" 32 android:layout_width="match_parent" 33 android:layout_height="match_parent"> 34 </android.support.v7.widget.RecyclerView> 35 36 </android.support.design.widget.CoordinatorLayout>
注意:第11行:app:contentScrim設置摺疊以後的顏色;blog
第12行,flag必須設置成 scroll|exitUntilCollapsed;圖片
第16行 app:layout_collapseMode 設置成 parallax,表示圖片會隨着滾動開始漸變;ip
第22行:設置成pin表示toolbar會停留在最上方
此時若是要設置文字必須從CollapsingToolbarLayout入手
<android.support.design.widget.FloatingActionButton app:layout_anchor="@id/appbar" app:layout_anchorGravity="right|bottom|end" android:layout_width="wrap_content" android:layout_height="wrap_content" />
實現floatingActionButton與AppbarLayout一同消失和呈現