app:contentScrim="?attr/colorPrimary"
属性的效果:
首先看一下未加入app:contentScrim属性的效果
可以看见把图片的当作toolbar来展示
在看一下加入属性的效果:
当上拉toolbar的位置时,显示的是系统自定义的toolBar
android:fitsSystemWindows 属性
一个boolean值的内部属性,让view可以根据系统窗口(如status bar)来调整自己的布局,如果值为true,就会调整view的padding属性来给system windows留出空间。用于沉浸式状态栏!
就是图1的效果
app:expandedTitleMarginStart="48dp"属性
在展开的标题文本的起始端指定额外的空间
简单的说:
就是图1中龙都大朝距离屏幕左边的距离
与之对应的是app:expandedTitleMarginEnd="64dp"
距离右边屏幕的距离
app:layout_scrollFlags 属性
必须是一个或者多个值 用 | 分开
layout_scrollFalgs属性有5个值
1. enterAlways 值4
2.enterAlwaysCollapsed 值8
3. exitUntilCollapsed 值2
4. scroll 值 1
5. snap 值10
scroll属性
所有想滚动出屏幕的view 都必须设置这个flag,如果不设置这个flag view会被固定在屏幕顶部。
可以看出数据滑动到第一条继续向下滑动,toolbar才会跟着滑出来
scroll | enterAlways
和scroll相比较,区别在与那个view现滑动,scroll首先滑动的是列表,列表的数据全部滚动完毕,才开始toolbar滑动。而scroll | enterAlways首先滑动的是toolbar (应该是调用这个属性的View,这里是在AppToolBar中添加的属性 就叫他toolbar),然后再去滑动其他的view。只是优先级先后的问题。
scroll | enterAlways|enterAlwaysCollapsed
先上图
enterAlwaysCollapsed是enterAlways的附加标志,向上滚动时,首先会滚动到最小高度,然后在继续向上滚动,滚动到Recycler的第一条数据就会全部展示出来。最小高度minHeignt
exitUntilCollapsed
直接上图
类似于app:layout_scrollFlags = scroll | enterAlways|enterAlwaysCollapsed
不同的是在滑动过程中,最小高度的view一直存在,Recycler滚到第一条数据 继续向上滑动才会显示全部。
app:layout_scrollFlags="scroll|snap"
滑动的时候松手,要么全部滚出屏幕,要么全部滚进屏幕。
最后贴上 xml布局
````
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"
android:fitsSystemWindows="true"
tools:context=".activity.ListCartoonDetailActivity">
android:id="@+id/list_detail_app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/appbar_height"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
android:id="@+id/collapsing_toolbar_layout"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
android:id="@+id/iv_list_detail"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@mipmap/picccccccc"/>
android:id="@+id/list_detail_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin">
android:id="@+id/list_detail_float"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:src="@mipmap/ic_github"
app:layout_anchor="@id/list_detail_app_bar"
app:layout_anchorGravity="end|right|bottom"
app:rippleColor="@color/material_lime_a700"/>
android:id="@+id/list_detail_swipe"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
android:id="@+id/list_detail_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="16dp">
````