1,NestedScrollView必须设置behavior,否则将与AppBarlayout重叠,因为CoordinatorLayout是一个
CoordinatorLayout is a super-powered {@link android.widget.FrameLayout FrameLayout}
2,CollapsingToolbarLayout会折叠内部的所有控件,并且它也是一个FrameLayout!内部放一个ToolBar并且设置layout_collapseMode="pin"会自动折叠到Toolbar的高度
3,如果CollapsingToolbarLayout的高度<=layout_collapseMode="pin"的子空间高度,或者高出不多,那么不会有任何折叠效果
4,CollapsingToolbarLayout的scrimAnimationDuration属性是动画执行时长,scrimVisibleHeightTrigger是开始执行的高度
5,如果你不想用自带的title效果,比如这样的:
(图是网上找的)
如果不想要这种title在折叠布局上的效果,请不要给CollapsingToolbarLayout设置title属性
6,AppBarLayout是一个线性布局,CollapsingToolbarLayout只会折叠内部的控件,AppBarLayout的其他控件并不会被折叠
7,CoordinatorLayout是要配合可滑动控件并且该可滑动控件设置了behavior才可以发挥效果
8,CollapsingToolbarLayout是在内部实现了AppBarLayout的offsetchangeListener的
9,offsetchangeListener的第二个参数表示用户滑动的距离,并且它是负数
10,AppBarLayout的totalScrollRange表示它的可滑动距离,与第九条中的参数是对应的,所以可以将参数的绝对值与totalScrollRange对比,当其相等时表示滑动到了最上方
11,AppBarLayout.Behaviord的onLayoutChild方法会不停地调用,所以如果你要在其中获取控件,请确保获取方法只调用一次
12,AppBarLayout.Behaviord的onStartNestedScroll是用于判断什么时候响应滑动事件
13,onNestedPreScroll方法的dy是与下方滑动控件的滑动距离相对应的,往上>0 往下<0,consumed表示消耗的滑动距离,比如consumed[0]=dx/2,那么表示在你横向滑动2像素的时候,AppbarLayout只会响应一像素的滑动距离
14,如果你在AppBarLayout.Behavior中控制子view的滑动与收缩,AppBarLayout并不会因此改变宽高大小
15,CoordinatorLayout.Behavior可以设置控件类型,layoutDependsOn中用于关联dependency
与child,dependency表示受观察的控件,child表示跟随parent做出反应的控件。
16,千万别尝试自己去实现折叠title的效果,只会把你搞到崩溃,并且效果强差人意(别问我怎么知道的)
17,在布局中设置自定义的behavior的时候,请尽量使用全路径
18,如果想要上方图中收缩后,标题栏还是该图片,请把折叠布局的背景设置成该图片