Android源码学习

阅读: 评论:0

Android源码学习

Android源码学习

前面的不用看了,就看下面几张图就可以知道大概的流程了
引用图片

落下时的动画在DragLayout 的animateView方法中: 箭头方向要反着看

根据 onDriverDragEnd()方法追溯 :


onDriverDragEnd() 等方法 与 Workspace的onDrop()方法之间的流程:

onDriverDragEnd() 等方法 与 Workspace的onDrop()方法之间的流程:

上面都是拖拽的流程,如果仅仅是长按不动呢 ?
大多数的方法调用的源头都是 DragController中对操作进度进行管理,而DragController对象的创建是在Launcher的onCreate方法中 在对 Workspace 和 DragLayout进行初始化之后,将DragController对象 通过setup方法传入Workspace 和 DragLayout中 .

对图标的拖拽主要是通过 DragLayout 的onTouchEvent和 onInterceptTouchEvent方法中对MOVE,UP,CANCEL事件的监听,也就是事件分发机制进行处理

拖拽卸载 :

DropTarget 定义可接收拖动的对象的接口。
DropTargetBar(获取搜索/删除/卸载栏)
在Workspace的addInScreen方法中 把 都传入DragController ArrayList中
DropTargetBar(获取搜索/删除/卸载栏) 则在Launcher的setupViews 方法中把自身的子view都传入到 DragController ArrayList 中

DropTargetBar与其子view,Workspace,Folder 都实现了 DropTarget 接口 ,DropTarget 接口 的作用就是定义可接收拖动的对象.所以我们对图标拖拽结束时 , 图标会根据坐标判断 要落入文件夹 或者 DropTargetBar,亦或者是Workspace(显示图标和widget的主体)

DropTargetBar : 在launcher的布局中负责展示 搜索/删除/卸载栏 , 内部包含了部分特殊功能的子view,当我们判断拖拽结束时 对象 由 子view之一 DeleteDropTarget 接收时,我们就会弹窗对用户进行提醒是否卸载.

DragController 中的 findDropTarget 方法就是根据当前的坐标找到图标悬停的 实现DropTarget接口的view上面

  • 拖拽卸载就是因为 展示图标的dragView 被拖拽到 DropTargetBar 中卸载的子view上了

本文发布于:2024-02-02 17:32:41,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170686636045354.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:【位运算】1
下一篇:JAVA技术大略
标签:源码   Android
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23