【移动应用开发技术】深入浅析Android中的NestedScrolling滑动机制_第1页
【移动应用开发技术】深入浅析Android中的NestedScrolling滑动机制_第2页
【移动应用开发技术】深入浅析Android中的NestedScrolling滑动机制_第3页
【移动应用开发技术】深入浅析Android中的NestedScrolling滑动机制_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】深入浅析Android中的NestedScrolling滑动机制

深入浅析Android中的NestedScrolling滑动机制?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1,如今NestedScrolling运用到很多地方了,要想好看一点的滑动变换,基本上就是使用这个来完成的,让我们来简单的了解一下。2,NestedScrolling机制能够让父View和子View在滚动式进行配合,其基本流程如下:而要实现这样的交互机制,首先父view要实现NestedScrollingParent接口,而子View需要实现N恩斯特大S从rollingChild接口,在这套机制中子View是发起者,父view是接受回调并做出响应的。一下是几个关键的类和接口一些新的系统View已经帮我们实现了以上两个接口,也就是说他们是支持NestedScrolling,例如:NestedScrollView已经实现了NestedScrollingChild和NestedScrollingParent两个接口RecycleView已经实现了NestedScrollingChildCoordinatorLayout实现了NestedScrollingParentNestedScrollingChild接口开启嵌套滚动流程(实际上是进行了一些嵌套滚动前准备工作)。当找到了能够配合当前子view进行嵌套滚动的父view时,返回值为true(Returns:trueifacooperativeparentwasfoundandnestedscrollinghasbeenenabledforthecurrentgesture)。在子view自己进行滚动之前调用此方法,询问父view是否要在子view之前进行滚动。此方法的前两个参数用于告诉父View此次要滚动的距离;而第三第四个参数用于子view获取父view消费掉的距离和父view位置的偏移量。第一第二个参数为输入参数,即常规的函数参数,调用函数的时候我们需要为其传递确切的值。而第三第四个参数为输出参数,调用函数时我们只需要传递容器(在这里就是两个数组),在调用结束后,我们就可以从容器中获取函数输出的值。如果parent消费了一部分或全部距离,则此方法返回true。在子view自己进行滚动之后调用此方法,询问父view是否还要进行余下(unconsumed)的滚动。前四个参数为输入参数,用于告诉父view已经消费和尚未消费的距离,最后一个参数为输出参数,用于子view获取父view位置的偏移量。返回值:(翻译出来可能有歧义,直接放原文)trueiftheeventwasdispatched,falseifitcouldnotbedispatched.最后,stopNestedScroll()方法与startNestedScroll(intaxes)对应,用于结束嵌套滚动流程;而惯性滚动相关的两个方法与触摸滚动相关的两个方法类似,这里不再赘述。NestedScrollingParent接口概述从命名可以看出,这几个都是回调方法。当调用NestedScrollingChild中的方法时,NestedScrollingParent中与之相对应的方法就会被回调。方法之间的具体对应关系如下:从上面的接口还有方法我们可以得出一些简单的流程3,自定义NestedScrolling控件先看一下效果先看一下布局文件activity_main.xml布局文件只是简单的嵌套,MyNestedScrollParent继承Linearlayout,并实现NestedScrollingParent接口,MyNestedScrollChild同理,先来看看MyNestedScrollChild这个类吧。MyNestedScrollChild.java主要是在OnTouchEvent中先后调用了startNestedScroll()和dispatchNestedPreScroll()方法,在借助helper来完成NestedScrollingParent接口方法MyNestedScrollParent.javaMyNestedScrollParent主要是实现一下功能①、在onStartNestedScroll()中判断参数target是哪一个子view以及滚动的方向,然后决定是否要配合其进行嵌套滚动②、在onNestedPreScrol

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论