ZUI易入门Android之协调布局CoordinatorLayout(一)

 

CoordinatorLayout 是一个整体的ViewGroup,它的主要作用是协调各个子View之间的滑动交互,也就是Behavior,后期我们会详细讲一下怎么来自定义Behavior。

AppBarLayout:首先,AppBarLayout是一个LinearLayout,它的子View默认纵向排列, 可以通过一些参数控制子View的滑动行为。

 

AppBarLayout:对下面的子控件提供一些layout_scrollFlags属性的配置

 

layout_scrollFlags配置详细说明:

全局滑动事件处理

Scroll:跟着滑动的方向进行滑动,如果不配置会一直在屏幕中静态显示。

Snap:这个属性有个很明显回弹效果,当滑动距离过短时,会回弹到最近的上边缘或者下边缘。

向下滑动事件处理

EnterAlways:这个属性其实就是向下滚动时Scrolling View和Child View之间的滚动优先级问题,当向下滚动时,优先滑出Child View,当全部滑出时,再去处理Scrolling View的滑动事件。

EnterAlwaysCollapsed:这个属性是上个属性的附加值,这里涉及到Child View的高度和最小高度,向下滚动时,Child View先向下滚动最小高度值,然后Scrolling View开始滚动,到达边界时,Child View再向下滚动,直至显示完全。

向上滑动事件处理

ExitUntilCollapsed:这里也涉及到最小高度。发生向上滚动事件时,Child View向上滚动退出直至最小高度,然后Scrolling View开始滚动。也就是,Child View不会完全退出屏幕。

CollapsingToolbarLayout:实现Toolbar的折叠效果

contentScrim:折叠后的颜色

layout_collapseMode:pin 滑动时会固定到屏幕上,不会折叠,parallax会发生折叠,并带有一定的视差特效效果,视差特效的比例由layout_collapseParallaxMultiplier来控制。

 

Behavior: 处理交互的,其中最主要有两个知识点,依赖方和被依赖方。

目前用的系统的这个Behavior 被依赖的是 AppBarLayout,依赖的就是我们下面的整个布局。


    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


            android:id="@+id/shanghai_app_barlayot"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

                    app:contentScrim="@color/colorPrimaryDark"
            app:layout_scrollFlags="scroll|snap|enterAlways|exitUntilCollapsed"
            android:id="@+id/shanghai_collapsingtoolbarlayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
                            app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.6"
                android:scaleType="centerCrop"
                android:src="@mipmap/shanghai"
                android:layout_width="match_parent"
                android:layout_height="200dp" />

                            app:contentInsetStart="0dp"
                app:layout_collapseMode="pin"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize">

                                    android:layout_width="match_parent"
                    android:layout_height="match_parent">
                                            android:visibility="gone"
                        android:background="@drawable/shape_splash"
                        android:id="@+id/tv_shanghai_welcome"
                        android:textColor="@color/color_ffffff"
                        android:layout_centerInParent="true"
                        android:gravity="center"
                        android:text="今日播报"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />

                                            android:visibility="gone"
                        android:id="@+id/tv_marquee_title"
                        android:focusable="true"
                        android:focusableInTouchMode="true"
                        android:marqueeRepeatLimit="marquee_forever"
                        android:text="目前播放的歌曲:天空"
                        android:ellipsize="marquee"
                        android:singleLine="true"
                        android:textSize="15dp"
                        android:textColor="@color/color_ffffff"
                        android:layout_marginLeft="10dp"
                        android:layout_centerVertical="true"
                        android:layout_toRightOf="@+id/tv_shanghai_welcome"
                        android:layout_width="100dp"
                        android:layout_height="wrap_content" />
               

           


       

   


            app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:id="@+id/shanghai_recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

   

你可能感兴趣的:(ZUI易入门Android)