Android Meterial Design 之 CoordinatorLayout+AppBarLayout+Toolbar+NestedScrollView

1.简介 :

  • CoordinatorLayout 顾名思义 布局协调者, 有非常高的定制度,开发者可以根据不同的需求实现各式各样的view的联动效果,其核心是behavior
  • AppBarLayout 一般用作用定制顶部栏,继承自LinearLayout ,默认为垂直布局,可根据手势的滑动,其核心是 layout_scrollFlags 或者在代码中调用 setScrollFlags()方法 来实现一些效果(需要跟CoordinatorLayout 使用)
  • Toolbar 替代ActionBar的新控件,使用比ActionBar更加方便 使用需要隐藏ActionBar;
  • NestedScrollView 继承的是FrameLayout.当ScrollView 需要嵌套时 用来替代ScrollView 的,相信大家都知道..ScrollView 嵌套时有多坑..ListView简直惨不忍睹! 它可以在嵌套当中不与别的可滑动视图有冲突.

2.使用:

  • 需要将CoordinatorLayout 作为根布局来协调子view之间的联动
  • behavior
    作为CoordinatorLayout 的核心,它承载了CoordinatorLayout 当中的view的滑动联动的调节,CoordinatorLayout 布局和AppBarLayout 控件是没有滑动功能的,那么他们怎么实现辣么多的滑动效果呢?所以就需要behavior的组织联动,使可以滑动的view与AppBarLayout绑定起来,在可以滚动的视图滑动时,使AppBarLayout (不可滚动视图)做出相应的处理, 实现滑动效果,google默认帮我们实现了联动效果 只需要在可滚动视图上加上下面代码,即可联动,behavior可以自定义(学习中,有成果会记录下来)
    app:layout_behavior="@string/appbar_scrolling_view_behavior
  • NestedScrollView :
    • 使用非常简单 如下代码

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


 - **AppBarLayout :** 
 
AppBarLayout 的子View 通过ScrollFlags来执行指定动作,可以设置4种动作 注: 默认是不滚动,在什么位置就是什么位置,可以设置多种flag 使用 | 隔开
  • scroll
  • 会根据滚动而滚出屏幕,所有需要在滚动时滚出屏幕的都需要设置
  • enterAlways
  • 快速返回模式。 向上滚动 设置次flag的view隐藏,向下滚动view显示
  • enterAlwaysCollapsed
  • 当你的视图已经设置minHeight属性又使用此标志时,当view向下滑动的时候会显示最小的高度,只有当滚动视图到达顶部时才显示到view的完整高度。
  • exitUntilCollapsed
  • 在滚动过程中,会先将view缩小到最小高度,在达到此view最小高度之前,整个视图中的滑动事件是不生效的,达到之后,才会滑动视图.

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/barLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
**app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" **
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="?attr/colorPrimary" />

```

所以最终的布局是


 
   
   

           
    
      

3.总结
有了这些个控件,实现起很多好看的效果就显得非常容易
本文只是说一下普通用法,在我公司的app当中我实现了很多不同的效果,用法有很多,实现的效果有非常多种,大家一起学习,共同成长.

你可能感兴趣的:(Android Meterial Design 之 CoordinatorLayout+AppBarLayout+Toolbar+NestedScrollView)