天天看點

Android開發之CollapsingToolbarLayout的用法

CoordinatorLayout搭配CollapsingToolbarLayout和ToolBar,可以實作Toolbar的折疊效果,今天我們就來實作這一折疊效果!

-----------------------分割線-------------------------

效果圖展示:

Android開發之CollapsingToolbarLayout的用法

-----------------------分割線-------------------------

添加依賴包:

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"
           

和狀态欄的沉浸式效果:指定顔色。

其他的都簡單易懂,就不做過多介紹!

-----------------------結束!-------------------------

繼續閱讀