Android CoordinatorLayout(四) CoordinatorLayout的常用属性

前面我用三章讲了CoordinatorLayout的一些用法,常用的就那三四种,如果你还想实现其它的想要的效果,可以好好的了解一些这个控件,甚至看看它的源码,这样你才能真正的玩会它。

接下来我们把上几篇中的一些细节给讲一下,属性什么的。

二、CoordinatorLayout组合中常用到的属性

1. app:layout_scrollFlags

这个属性说是最重要的都不为过,之前的例子中我们都只写了app:layout_scrollFlags = “scroll”,也仅仅说了设置这个属性才能折叠,现在看看是什么含义。
我们找到出现这个属性的地方。你会发现他在AppBarLayout内,所以要在这个Viewgroup内才能设置这个属性

Android CoordinatorLayout(四) CoordinatorLayout的常用属性
image.png

他定义了这些属性:
(1)public static final int SCROLL_FLAG_SCROLL = 0x1;
(2)public static final int SCROLL_FLAG_EXIT_UNTIL_COLLAPSED = 0x2;
(3)public static final int SCROLL_FLAG_ENTER_ALWAYS = 0x4;
(4)public static final int SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED = 0x8;
(5)public static final int SCROLL_FLAG_SNAP = 0x10;

如果你看API,你会发现这个属性可以设值
scroll(1),enterAlways(3),enterAlwaysCollapsed(4),exitUntilCollapsed(2)
,snap(5)

(1)scroll:就是想要折叠的话必须 必须 必须使用这个值。注意如果在这个child View前面的任何其他Child View没有设置这个值,那么这个Child View的设置将失去作用。
(2)exitUntilCollapsed : 就是设置这个属性的view,你可以给它设置一个最小高度android:minHeight,当它折叠到这个高度时就不会继续折叠。
(3)enterAlways: 如果你设置这个值,当View已经处于折叠状态,你向下滑动时会优先展开。不设置时会先让滑动控件滑到顶部再展开。
(4)enterAlwaysCollapsed :效果就是(2) + (3)的组合
(5)snap : 相当于一个磁铁一样,会吸附。这个很重要,有些别人写的酷炫效果都用到它。如果你会用好这个值,那你做出来的东西肯定逼格很高。

建议:
建议如果有时间自己写个demo把每个属性都试试,如果大家没时间,我推荐这个笔者写的文章,上面有展示GIF,你对着属性就很容理解哪种值对应哪种效果,写得很用心。
http://www.jianshu.com/p/7caa5f4f49bd

2. app:layout_behavior="@string/appbar_scrolling_view_behavior"

这个属性也是一个重要的属性,之前我也只说了,不设置这个的话,会像frameLayout一样重叠。现在就来好好介绍一下这个属性。

简单来说这个属性的意思是:
通知布局中包含滑动组件

怎么说呢?你想想,如果你做一个外层有滑动效果的控件,内部再包含一个有滑动效果的控件,想想,是不是会滑动冲突。而这个属性你可以当成是为了通知整个控件,设置这个属性的会和它产生冲突,让它解决。

你要是有强迫症可以删掉这个属性看看效果。我不会弄gif,展示不了效果,不过我能告诉你删除后会有滑动冲突。不过你也可以利用这个冲突达到一种黑科技的效果。
顺便展示一下源码中的位置吧,感兴趣的可以自己去翻源码。

Android CoordinatorLayout(四) CoordinatorLayout的常用属性
image.png
Android CoordinatorLayout(四) CoordinatorLayout的常用属性
image.png
3. android:fitsSystemWindows

有些人写的demo中设置有这个属性,我这里没有,不过还是讲解一下吧。

这个状态可以调节状态栏,也就是你手机最顶的那栏,设置的话能让View根据状态栏来调整自己。

4. app:layout_collapseMode

这个是CollapsingToolbarLayout中用到的,CollapsingToolbarLayout中还有很多属性我不讲,大家可以自己去查然后学习,我就讲我认为最重要的app:layout_collapseMode。
这个属性可以设置两个值,具体例子可以参考Android CoordinatorLayout(二)的demo

(1)pin: 固定模式,在折叠的时候最后固定在顶端
(2)parallax: 视差模式,在折叠的时候会有个视差折叠的效果(就是折叠+渐变)

属性的话我就想介绍这4个,其它的都比较常用,还有一个layout_behavior,这个是写在AppBarLayout中的属性,为了解决卡顿问题。

上一篇:Dialog和软键盘的冲突


下一篇:Android CoordinatorLayout(二)CoordinatorLayout的组合使用