简述
今天来给大家讲一讲CollapsingToolbarLayout的使用,网上有很多的例子,但是讲的都比较浅显。
怎么导入?
AppBarLayout是Support包里面提供的一个控件。所以要使用这个控件,就要引用Support包。引入比较简单,就是在你的运行module里面的Gradle文件,添加如下的一行代码:
dependencies{
........
compile'com.android.support:design:23.3.0'
}
Sync Project with Gradle 一下,然后在你的布局文件里面,即可使用。

它是什么?
首先看名字,可伸缩折叠的Toolbar。 看类的注释:

上面说,它是实现了可折叠的app bar。他只能是AppBarLayout的子控件。他有如下的特性:
1. Collapsing title:ToolBar的标题,当CollapsingToolbarLayout全屏没有折叠时,title显示的是大字体,在折叠的过程中,title不断变小到一定大小的效果。你可以调用setTitle(CharSequence)方法设置title。
2. Content scrim:ToolBar被折叠到顶部固定时候的背景,你可以调用setContentScrim(Drawable)方法改变背景或者 在属性中使用 app:contentScrim=”?attr/colorPrimary”来改变背景。
3. Status bar scrim:状态栏的背景,调用方法setStatusBarScrim(Drawable)。还没研究明白,不过这个只能在Android5.0以上系统有效果。
4. Parallax scrolling children:CollapsingToolbarLayout滑动时,子视图的视觉差,可以通过属性app:layout_collapseParallaxMultiplier=”0.6”改变。
5. CollapseMode :子视图的折叠模式,有两种“pin”:固定模式,在折叠的时候最后固定在顶端;“parallax”:视差模式,在折叠的时候会有个视差折叠的效果。我们可以在布局中使用属性app:layout_collapseMode=”parallax”来改变。
它有什么?
我们继续往下看他的代码,看看有哪些对我们有用。
他本身接受那些xml的属性?看它的代码,我们发现有很多,如下图。




那它的子控件有接受哪些xml属性呢?他既然是ViewGroup,我们看看LayoutParams:

collapseParallaxMultiplier:来设置视差因子
collapseMode:上面已经有介绍,pin or PARALLAX, 默认是COLLAPSE_MODE_OFF
/**
* The view will act as normal with no collapsing behavior.
*/
public static final int COLLAPSE_MODE_OFF=0;
怎么使用?
这个布局文件

1. 父容器依然是CoordinatorLayout.
2. CollapsingToolbarLayout 必须是AppBarLayout的子容器。所以结果就是<AppBarLayout><CollapsingToolbarLayout></CollapsingToolbarLayout> </AppBarLayout>
3. Toobar不要设置背景色,不然就不能实现Material的效果。
4. 在Scroll的控件上面 设置行为 behavior.
今天就写到这。
网友评论