NestedScrolling 机制深入解析

作者: 程序员徐公 | 来源:发表于2017-05-11 22:30 被阅读966次

    使用CoordinatorLayout打造各种炫酷的效果

    自定义Behavior —— 仿知乎,FloatActionButton隐藏与展示

    NestedScrolling 机制深入解析

    一步步带你读懂 CoordinatorLayout 源码

    自定义 Behavior ——仿新浪微博发现页的实现

    仿新浪微博效果图

    简介

    NestedScrolling,在 V4 包下面,在 22.10 版本的时候添加进来,支持 5.0 及 5.0 以上的系统。

    NestedScrolling,简称嵌套滑动使用它可以实现一些非常绚丽的效果。如知乎的效果,UC 首页的效果,新浪微博发现的效果等。

    Google 帮我们封装好了一些相应的空间,比如 RecyclerView 实现了 NestedScrollingChild 接口,CoordinatorLayout 实现了 NestedScrollingParent 接口,NestedScrollingView,SwipeRefreshLayout 实现了 NestedScrollingChild,NestedScrollingParent 接口等。

    想比较于传统的事件分发机制,NetstedScroll 机制有什么优点,相信很多人都有这样的疑问?

    在传统的事件分发机制 中,一旦某个 View 或者 ViewGroup 消费了事件,就很难将事件交给父 View 进行共同处理。而 NestedScrolling 机制很好地帮助我们解决了这一问题。我们只需要按照规范实现相应的接口即可,子 View 实现 NestedScrollingChild,父 View 实现 NestedScrollingParent ,通过 NestedScrollingChildHelper 或者 NestedScrollingParentHelper 完成交互。

    NestedScrolling 机制简述

    NestedScrolling 的处理流程

    NestedScrolling 机制主要有两个类,

    • NestedScrollingParent

    在嵌套滑动中,如果父View 想实现 嵌套滑动,要实现这个 NestedScrollingParent 借口,与 NestedScrollingChild 大概有一一对应的关系。

    • NestedScrollingChild

    在嵌套滑动中,如果scrolling child 想实现嵌套滑动,必须实现这个借口

    • NestedScrollingChildHelper

    实现 Child 和 Parent 交互的逻辑

    • NestedScrollingParentHelper

    实现 Child 和 Parent 交互的逻辑

    它的处理流程大概是这样的:

    相关文章

      网友评论

      • MiBoy:不错,如果贴两张gif 就会更好了

      本文标题:NestedScrolling 机制深入解析

      本文链接:https://www.haomeiwen.com/subject/ljuatxtx.html