CoordinatorLayout搭配CollapsingToolbarLayout和ToolBar,可以實作Toolbar的折疊效果,今天我們就來實作這一折疊效果!
-----------------------分割線-------------------------
效果圖展示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9UkaOpXWE1keJpXTmZEWjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TO4MTOxYTMzITNyUDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
-----------------------分割線-------------------------
添加依賴包:
compile 'com.android.support:design:26.0.0-alpha1'
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
注意:裡面内容部分也可以不用RecyclerView,可以用NestedScrollView,此控件是ScrollView的更新版本,其主要功能就是搭配MD風格的控件進行使用。
布局完完整代碼:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.fly.collapsingtoolbarlayout.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="260dp">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="200dp"
app:collapsedTitleGravity="center_horizontal"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleGravity="center"
app:expandedTitleMargin="5dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:statusBarScrim="?attr/colorPrimary"
app:title="fly學院">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/img"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="1" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_collapseMode="pin"
app:logo="@mipmap/ic_launcher" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
-----------------------分割線-------------------------
想必RecyclerView的用法大家都熟悉了,這裡就不再貼RecyclerView的代碼了,這裡講解一下布局中幾個關鍵點。
注意:1.AppBarLayout設定固定高度,并且要實作折疊效果必須比toolbar的高度要高。
2.CollapsingToolbarLayout最好設定成match_parent。
app:layout_collapseMode="parallax"
parallax:視差模式,在折疊的時候會有折疊視差效果。一般搭配layout_collapseParallaxMultiplier=“0.5”視差的明顯程度be between 0.0 and 1.0.
none:沒有任何效果,往上滑動的時候toolbar會首先被固定并推出去。
pin:固定模式,在折疊的時候最後固定在頂端。
app:contentScrim="?attr/colorPrimary"
内容部分的沉浸式效果:toolbar和imageview有一個漸變過渡的效果
app:statusBarScrim="?attr/colorPrimary"
和狀态欄的沉浸式效果:指定顔色。
其他的都簡單易懂,就不做過多介紹!
-----------------------結束!-------------------------