Android控件<第二十六篇>:CoordinatorLayout+AppBarLayout現(xiàn)實

NestedScrolling的使用是所有嵌套滾動效果的基礎,先看一下布局文件代碼:

<com.zyc.hezuo.animationdemo.MyCustomNestedScrollingParent
    android:id="@+id/nestedparent"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@mipmap/pic_shi"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:textSize="20sp"
        android:gravity="center"
        android:background="@color/bt_1"
        android:text="我是標題"/>

    <com.zyc.hezuo.animationdemo.MyCustomNestedScrollingChild
        android:id="@+id/nestedchild"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="我是任意內容我是任意內容我是任意內容我是任意內容我是任意內容我是任意內容我是任意內容我是任意內容我是任意內容我是任意內容"
            android:textSize="30sp"/>

    </com.zyc.hezuo.animationdemo.MyCustomNestedScrollingChild>

</com.zyc.hezuo.animationdemo.MyCustomNestedScrollingParent>

整個布局由MyCustomNestedScrollingParent包裹,它有三個子view瞭恰,分別是ImageViewTextViewMyCustomNestedScrollingChild绸罗,MyCustomNestedScrollingChild實現(xiàn)了NestedScrollingChild接口荒典,MyCustomNestedScrollingParent實現(xiàn)了NestedScrollingParent接口酪劫,兩者相互配合吞鸭,根據(jù)ImageView的高度計算具體行為。

然而覆糟,本章不會重復的說明NestedScrollingChildNestedScrollingParent刻剥,本章的重點是CoordinatorLayoutAppBarLayout滩字、NestedScrollView造虏、RecyclerView結合使用。

(1) CoordinatorLayout+AppBarLayout+NestedScrollView
圖片.png

如圖所示麦箍,CoordinatorLayout實現(xiàn)了NestedScrollingParent2接口漓藕,NestedScrollingParent2NestedScrollingParent類似,從上一篇就知道挟裂,僅僅只有NestedScrollingParent是沒有嵌套聯(lián)動效果的享钞,必須結合NestedScrollingChild才可以,這里使用NestedScrollView诀蓉,NestedScrollView實現(xiàn)了NestedScrollingChild2接口栗竖。

布局如下:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity"
    android:background="#cccccc">


    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="26sp"
            android:text="阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多"/>

    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>

然而,CoordinatorLayout還缺少一個至關重要的子布局AppBarLayout交排,兩者是黃金搭檔划滋,它們同時存在才可以實現(xiàn)嵌套聯(lián)動效果,布局代碼如下:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity"
    android:background="#cccccc">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            app:layout_scrollFlags="scroll"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="假設我是標題欄"
            android:textColor="#ffffff"
            android:gravity="center"
            android:textSize="20sp"/>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="26sp"
            android:text="阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多"/>

    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>

效果如下:

117.gif

以上效果看起來并不友好埃篓,NestedScrollView始終全屏处坪,下拉時AppBarLayout感覺像覆蓋在NestedScrollView上一樣。為了解決這個問題架专,需要在NestedScrollView上添加Behavior同窘。

(2)添加Behavior

添加一句關鍵代碼:

app:layout_behavior="@string/appbar_scrolling_view_behavior"

全部代碼如下:

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="26sp"
            android:text="阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多阿薩打算多啊實打實大大多所啊實打實大大所大多"/>

    </android.support.v4.widget.NestedScrollView>

appbar_scrolling_view_behavior它的值是degisn依賴包自帶的,它的值如下:

<string name="appbar_scrolling_view_behavior" translatable="false">android.support.design.widget.AppBarLayout$ScrollingViewBehavior</string>

看到這個值就可以明白部脚,原來就是為了綁定AppBarLayout的內部類ScrollingViewBehavior想邦,其效果如下:

118.gif
(3)scrollFlags說明

首先看一下這個布局代碼

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            app:layout_scrollFlags="scroll"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="假設我是標題欄"
            android:textColor="#ffffff"
            android:gravity="center"
            android:textSize="20sp"/>

    </android.support.design.widget.AppBarLayout>

在ImageView標簽上添加了一句代碼:

app:layout_scrollFlags="scroll"

這句代碼可以讓圖片實現(xiàn)滾動效果,如果刪除就不會有滾動效果了委刘,scrollFlags往往和AppBarLayout一起使用丧没。

scrollFlags的屬性有scroll、enterAlways锡移、enterAlwaysCollapsed呕童、exitUntilCollapsed、snap淆珊、snapMargins夺饲,他們的效果如下:

一、[app:layout_scrollFlags="scroll"]:一般聯(lián)動效果,上聯(lián)動時先父后子往声,下聯(lián)動時先子后父擂找。

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            app:layout_scrollFlags="scroll"/>
118.gif

二、[app:layout_scrollFlags="scroll|enterAlways"]:上聯(lián)動和下聯(lián)動都是先父后子浩销。

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            app:layout_scrollFlags="scroll|enterAlways"/>
119.gif

三贯涎、[app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"]

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            android:minHeight="50dp"
            app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"/>

enterAlwaysCollapsed是enterAlways的延伸,enterAlwaysCollapsed必須和enterAlways一起使用撼嗓。enterAlwaysCollapsed主要對view的minHeight屬性起作用柬采。上聯(lián)動時先父后子,下聯(lián)動時且警,先父(到最小高度)后子再父粉捻。

120.gif

四、[app:layout_scrollFlags="scroll|exitUntilCollapsed"]

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            android:minHeight="50dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"/>

上聯(lián)動時斑芜,先父后到最小高度肩刃,后子。下聯(lián)動時杏头,先子后父盈包。

121.gif

五、[app:layout_scrollFlags="scroll|snap"]

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            android:minHeight="50dp"
            app:layout_scrollFlags="scroll|snap"/>

圖片實現(xiàn)viewpager類似的效果醇王。

122.gif

六呢燥、[app:layout_scrollFlags="scroll|snap|snapMargins"]

snapMargins是snap延伸,必須和snap一起使用才會生效寓娩。

首先叛氨,給view添加margin,并且不使用snapMargins參數(shù)

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            android:layout_marginTop="100dp"
            android:layout_marginBottom="100dp"
            app:layout_scrollFlags="scroll|snap"/>

效果如下:

123.gif

如果添加上snapMargins參數(shù)之后

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            android:layout_marginTop="100dp"
            android:layout_marginBottom="100dp"
            app:layout_scrollFlags="scroll|snap|snapMargins"/>

效果如下:

124.gif
(4)結合RecyclerView
圖片.png

如圖所示棘伴,RecyclerView也實現(xiàn)了NestedScrollingChild2寞埠,所以RecyclerView可以和CoordinatorLayout、AppBarLayout一起實現(xiàn)聯(lián)動效果焊夸。

布局如下:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity"
    android:background="#cccccc">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/che1"
            app:layout_scrollFlags="scroll"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="假設我是標題欄"
            android:textColor="#ffffff"
            android:gravity="center"
            android:textSize="20sp"/>

    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>

效果如下:

125.gif

[本章完...]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末仁连,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阱穗,更是在濱河造成了極大的恐慌饭冬,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揪阶,死亡現(xiàn)場離奇詭異昌抠,居然都是意外死亡,警方通過查閱死者的電腦和手機遣钳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蕴茴,你說我怎么就攤上這事劝评。” “怎么了倦淀?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵蒋畜,是天一觀的道長。 經常有香客問我撞叽,道長姻成,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任愿棋,我火速辦了婚禮科展,結果婚禮上,老公的妹妹穿的比我還像新娘糠雨。我一直安慰自己才睹,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布甘邀。 她就那樣靜靜地躺著琅攘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪松邪。 梳的紋絲不亂的頭發(fā)上坞琴,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音逗抑,去河邊找鬼剧辐。 笑死,一個胖子當著我的面吹牛锋八,可吹牛的內容都是我干的浙于。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挟纱,長吁一口氣:“原來是場噩夢啊……” “哼羞酗!你這毒婦竟也來了?” 一聲冷哼從身側響起紊服,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤檀轨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后欺嗤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體参萄,經...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年煎饼,在試婚紗的時候發(fā)現(xiàn)自己被綠了讹挎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖筒溃,靈堂內的尸體忽然破棺而出马篮,到底是詐尸還是另有隱情,我是刑警寧澤怜奖,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布浑测,位于F島的核電站,受9級特大地震影響歪玲,放射性物質發(fā)生泄漏迁央。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一滥崩、第九天 我趴在偏房一處隱蔽的房頂上張望岖圈。 院中可真熱鬧,春花似錦夭委、人聲如沸幅狮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽崇摄。三九已至,卻和暖如春慌烧,著一層夾襖步出監(jiān)牢的瞬間逐抑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工屹蚊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厕氨,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓汹粤,卻偏偏與公主長得像命斧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子嘱兼,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內容