CollapsingToolbarLayout
简介
- 一个
FrameLayout - 用于实现可折叠的标题栏,通常在子布局中放一个
Toolbar - 必须作为 
AppBarLayout的子类,才能发挥出效果 
xml属性
在 CollapsingToolbarLayout 中的部分属性
collapsedTitleGravity:折叠态标题位置collapsedTitleTextAppearance:折叠态标题外观expandedTitleGravity:扩展态标题位置expandedTitleMargin*:扩展态标题的Margin。注意与expandedTitleGravity可能冲突expandedTitleTextAppearance:扩展态后标题的外观contentScrim:折叠态后Toolbar颜色scrimAnimationDuration:收缩或展开时颜色动画持续时间。需要设置contentScrim生效scrimVisibleHeightTrigger:触发高度。小于的时候,展示contentScrim,否则不展示toolbarId:折叠态的时候显示的Toolbar的id
在 CollapsingToolbarLayout 中还需要使用 AppBarLayout 中的属性
app:layout_scrollFlags:具体参考AppBarLayout中的Flag用法
在 CollapsingToolbarLayout 子view中用到的属性(CollapsingToolbarLayout.LayoutParams)
layout_collapseMode:折叠模式。三种取值COLLAPSE_MODE_OFF(none) :等于没设置COLLAPSE_MODE_PARALLAX(parallax) :view将以视差方式滚动
上面大图部分的父
View是CollapsingToolbarLayout,对ImageView设置了parallax,效果就是上下各一半的减少,最后显示的位置是图片的正中央COLLAPSE_MODE_PIN(pin) :view固定在适当位置,直到达到CollapsingToolbarLayout底部。就相当于View被整个推上去或者拉下来的效果
layout_collapseParallaxMultiplier: 视差系数。layout_collapseMode设置为parallax才生效。不设置视差系数,默认为0.5,就是收缩时上下各自收缩一半。视差系数决定下面收缩比例。如:对
ImageView设置视差系数为0.2,可以看到收缩的时候,下面收缩的比较慢,上面收缩的比较快。实际上下面没收缩2px,上面就收缩8px,收缩速度是下面的4倍
例子
597直聘的

1  | //布局关闭时顶部距离  | 
布局
1  | 
  |