首页 > 代码库 > Android控件大全(四)——CoordinatorLayout

Android控件大全(四)——CoordinatorLayout

CoordinatorLayout 其实就是个高级的FrameLayout,用于协调子布局
要使用该控件,需要再gradle中加入:
 compile com.android.support:design:24.2.1
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"

    scroll、enterAlways、enterAlwaysCollapsed、exitUtilCollapsed、snap 五中可选

     scroll:伴随着滚动时间滚进滚出屏幕,如果设置了其他的flag,这个flag是必须写上的,不然没有效果;前面所有的子View都必须带上这个属性,不然没有效果

     enterAlways:快速返回模式,优先滚动toolbar

     enterAlwaysCollapsed :要使用这种属性,必须设置一个minHeight,先将toolbar滚动至minHeight,然后滚动RecycylerView,滚动至顶部之后就继续滚动toolbar,并且需要配合enterAlways一起使用,否则没有效果

     exitUtilCollapsed:先将toolbar滚动至minHeight,然后滚动recyclerView,toolbar不会完全滚出屏幕

     snap:toolbar滚动添加一个吸附的效果


2、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设置折叠之后的颜色;

   第12行,flag必须设置成 scroll|exitUntilCollapsed;

   第16行 app:layout_collapseMode 设置成 parallax,表示图片会随着滚动开始渐变;

   第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一同消失和呈现

 

 

Android控件大全(四)——CoordinatorLayout