Android UI Material Design - CoordinatorLayout
作为一个容器与一个或者多个子View进行交互,常与AppBarLayout等配合使用,来达到MD风格中App Bar的一些滚动交互设计效果
AppBarLayout
继承LinearLayout,默认方向是Vertical
AppBarLayout 必须作为CoordinatorLayout直接子View
AppBarLayout的直接子控件可以设置属性layout_scrollFlags来实现不同的交互效果
5种flag值在滑动时展示隐藏效果可参考此篇文章,他一共写了好几篇Material Design相关对的简书,写的蛮好的。Github上也共享了Sample
<android.support.design.widget.CoordinatorLayout
......>
<!-- 伪代码展示常规用法 -->
<android.support.design.widget.AppBarLayout
......>
<!-- app:layout_scrollFlags设置后,会有各种显示,隐藏交互效果 -->
<android.support.v7.widget.Toolbar
......
app:layout_scrollFlags="scroll|enterAlways"
......>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
....../>
</android.support.design.widget.CoordinatorLayout>
CollapsingToolbarLayout
CollapsingToolbarLayout 是对 Toolbar 的一个包装,以达到折叠 AppBar 的交互视觉效果。所以,CollapsingToolbarLayout 的使用一定离不开 AppBarLayout 和 Toolbar,并且作为 AppBarLayout 的直接子视图使用
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
......>
<android.support.design.widget.AppBarLayout
......>
<!-- CollapsingToolbarLayout 封装Toolbar,实现折叠收缩效果 -->
<android.support.design.widget.CollapsingToolbarLayout
......
app:layout_scrollFlags="scroll|exitUntilCollapsed"
......>
<ImageView
......
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7"/>
<android.support.v7.widget.Toolbar
......
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
...... />
</android.support.design.widget.CoordinatorLayout>