里面主要用了CoordinatorLayout,AppBarLayout,Toolbar的结合使用,先看效果图如下:
MD的效果着实不错,
里面有许多坑,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"
android:fitsSystemWindows="true"
tools:context="com.example.minwenping.mdcollapselayout.MainActivity">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/activity_vertical_margin">
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第1个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第2个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第3个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第4个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第4个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第4个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第4个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第4个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第4个按钮这是" />
<Button
android:layout_width="match_parent"
android:layout_height="120dp"
android:text="第4个按钮这是" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="300dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/ctoolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:collapsedTitleGravity="center"
app:contentScrim="@color/colorAccent"
app:expandedTitleGravity="center_horizontal|bottom"
app:layout_scrollFlags="scroll"
app:title="collapsebar的标题"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/aa"
app:layout_collapseMode="pin" />
<ImageView
android:layout_gravity="center"
android:layout_width="120dp"
android:scaleType="centerCrop"
android:layout_height="120dp"
android:src="@drawable/bb"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorAccent"
app:layout_collapseMode="pin"
app:navigationIcon="@android:drawable/ic_delete"
app:title="折叠的标题" >
<TextView
android:text="我是toolbar的标题"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
坑1. app:layout_behavior=”@string/appbar_scrolling_view_behavior”则个必须要标记在scrollview里面。
坑2
appbar‘必须写死高度,当然也可以在代码里面写死,而且高度必须是的大于toolbar的高度
//这是折叠后title的位置,但是里面有坑,比如toolbar上面有内容,那这里设置的center就无效。会被从新排版
app:collapsedTitleGravity="center"
//这是折叠时过渡的渲染颜色
app:contentScrim="@color/colorAccent"
//展开后的title的位置
app:expandedTitleGravity="center_horizontal|bottom"
//监听什么时候开始折叠,与scrollview的layout_behavior对应
app:layout_scrollFlags="scroll"
//折叠布局的title内容
app:title="collapsebar的标题```
//折叠的模式,有三种,none,pin,和parallax,建议自己耍几下就知道区别和效果了
app:layout_collapseMode="parallax"