CoordinatorLayout >> AppBarLayout >> CollapsingToolbarLayout(内部可随意包裹控件)
每个需要响应滚动的View都需要在XML中设置app:layout_scrollFlag
layout_scrollFlags=scroll的时候,这个View会 跟着 滚动 事件响应,
layout_scrollFlags=“enterAlways”的时候 这个View会响应下拉事件
所以呈现出来的结果应该是我们在上拉的时候toolBar 会隐藏,下拉的时候toolBar会出来
那如果当我们的toolBar 等于 app:layout_scrollFlags=”scroll|snap”的时候 ,
layout_scrollFlags=scroll的时候,这个View会 跟着 滚动 事件响应,
layout_scrollFlags=“snap”的时候 在Scroll滑动事件结束以前 ,如果这个View部分可见,那么这个View会停在最接近当前View的位置。
AppBarLayout内如果有不需要隐藏的只需不设置app:layout_scrollFlag,在滑动到顶部的时候此类控件会在顶部显示
如果需要顶部图片有淡入淡出动画需要使用CollapsingToolbarLayout 内部包裹ImageView和TollBar ImageVIew需要设置app:layout_collapseMode="parallax",代表有动画效果。ToolBar内部如果设置app:layout_collapseMode="pin"代表如果图片隐藏了ToolBar的TItle在顶部显示。
CoordinatorLayout下面跟能滚动的控件(ListView,RecyclerView等),下面的控件无法准确在CoordinatorLayout的下面,需要加:app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior">
在CollapsingToolbarLayout里面设置app:contentScrim="?attr/colorPrimary"属性代表如果图片动画过后是否消失
需要的库:
compile'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar'
compile'com.android.support:design:25.3.1'
compile'com.android.support.constraint:constraint-layout:1.0.2'
compile"org.jetbrains.anko:anko-common:$anko_version"