android 13.0 Launcher3长按拖拽时最后一屏未满时不让拖拽到后一屏(二)

1.概述

在13.0系统rom定制化开发中,如果专门适配老年机的时候,这时客户提出要求,如果最后一屏未满时,不让拖拽到后面一屏的空屏中,等当前屏填满了以后,才能拖到下一屏的功能,所以要从workspace的拖拽类开始着手分析
接下来看具体分析实现相关的功能

2.长按拖拽时最后一屏未满时不让拖拽到后一屏(二)核心类

    packages/apps/Launcher3/src/com/android/launcher3/DropTarget.java
    packages/apps/Launcher3/src/com/android/launcher3/Workspace.java

3.长按拖拽时最后一屏未满时不让拖拽到后一屏(二)核心功能分析

Launcher顾名思义,就是桌面的意思,也是android系统启动后第一个启动的应用程序,
:Launcher3负责管理和展示用户手机桌面上的各个应用程序图标。它通过GridView或者LinearLayout等布局管理器将
图标进行排列,并支持滑动、放大缩小等手势操作
CellLayout:主屏幕中的每一页,其父布局就是Workspace,左右滑动屏幕,就是每一个CellLayout的变化过程,这个类中有很多处理拖拽相关方法
Workspace:就是CellLayout的父布局,所有的桌面app图标 hotseat图标 folder文件夹 widget小部件都是显示在workspace上的

在实现Launcher3长按拖拽时最后一屏未满时不让拖拽到后一屏(二)的核心功能中,通过上述的分析得知,
Workspace就是CellLayout的父布局绑定这种图标的布局,
首选来看Workspace.java源码 开始拖拽时会调用startDrag()
和beginDragShared(View child, DragSo

最近更新

  1. TCP协议是安全的吗?

    2023-12-29 07:12:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-29 07:12:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-29 07:12:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-29 07:12:02       18 阅读

热门阅读

  1. 构造哈夫曼树(数据结构实训)(难度系数85)

    2023-12-29 07:12:02       32 阅读
  2. 【浏览器】Web存储梳理和总结

    2023-12-29 07:12:02       34 阅读
  3. 《C#程序设计教程》总复习

    2023-12-29 07:12:02       29 阅读
  4. Vue2面试题:说一下v-show、v-if、v-for的理解?

    2023-12-29 07:12:02       32 阅读
  5. Latex如何转成Word

    2023-12-29 07:12:02       33 阅读
  6. stm32采用队列方式接收和发送RS485串口数据

    2023-12-29 07:12:02       32 阅读
  7. 第41节: Vue3 watch函数

    2023-12-29 07:12:02       41 阅读
  8. uniapp 目录结构

    2023-12-29 07:12:02       35 阅读
  9. K8S Ingress-Nginx导出TCP端口

    2023-12-29 07:12:02       39 阅读