android控件自定义控件Android开发

NestedScrolling 机制深入解析

2017-05-11  本文已影响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 机制主要有两个类,

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

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

实现 Child 和 Parent 交互的逻辑

实现 Child 和 Parent 交互的逻辑

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

上一篇下一篇

猜你喜欢

热点阅读