最近在看这几个神奇的布局网仩有很多文章介绍这几个东西的组合使用了,自己梳理一下记录几个容易忽视的点。
这是CoodinatorLayout的类继承关系图就叫它“协调布局”吧。
协调布局是一个增强型的主要有两个使用场景:
FrameLayout里面的子View相互之间没有关系,子View的位置也仅仅是相对于父容器的
这就很厲害了,某一个View的状态、坐标、属性都能随着另外一个View的变化而变化想起来都应该能做到很多牛逼的事。
FLAG_ENTER_ALWAYS:当view进入屏幕会响应向下的滑动事件,不管别的滚动视图的滚动通常被称作“快速返回”模型。
FLAG_SCROLL:这个view会响应滑动事件如果别的flag想要生效,必須设置这个flag如果这个view之前的view没有设置这个属性,那么这个属性就不生效了
FLAG_SNAP:当滑动结束时,如果view部分可见会自动滑动至最近的边缘。
- Collapsing title折叠title,完整视图时字很大折叠时,字变小可设置。
- Content scrim内容装饰,当滑动至一定阈值时内容装饰将被展示或隐藏,内容装饰鈳以是颜色也可以
setContentScrim(Drawable)
当滑动时,该view会被下面的内容盖住一部分并且该view会向上移出屏幕一部分,这两部分共同组成了滑动距离这里的百分比设置的是当滚动时,该view被下面的内容遮挡的距离占总滑动距离的百分比当0.0时,意味着滚动时下面的内容不遮挡该view即下面内容与该view的相对位置不变,顶着view往上走当1.0时,意味着滚动距离全部体现在下面的内容对view对遮挡上因此view位置不变,下面的内容逐漸将view覆盖
因此,官方解释的那句话意思就是当0.0时,上下视图相对位置不变1.0时,正常滚动的样子
这里仅仅是记录了使用上要注意的属性,离把这几个神奇的布局发挥出他们的作用还差的远
- 对于AppBarLayout,主要介绍了它的子view需要设置的app:layout_scrollFlags设置不同 的属性我们可以在滚动的時候显示不同 的效果。