Android 14.0 Folder文件夹全屏后文件夹图标列表居中时拖拽app到桌面的优化

1.概述

在14.0的系统rom产品开发中,在Launcher3中在目前的产品需求开发中,对于Launcher3中的文件夹Folder的布局UI
进行了定制化的需求要求把Folder修改为全屏,然后在中间显示文件夹图标的列表,这时候如果Folder是全屏的话,如果拖拽文件夹列表中的app图标,只有拖拽
到屏幕边缘才可以拖拽到workspace的页面,所以产品需求要求在app拖拽出中间的文件夹灰色区域的时候,就可以拖拽到workspace的页面,所以这就需要
对比folder非全屏的时候的拖拽情况,然后看拖拽流程来分析功能的实现
效果图如图:

2.Folder文件夹全屏后文件夹图标列表居中时拖拽app到桌面的优化的核心类

            packages/apps/Launcher3/src/com/android/launcher3/folder/Folder.java
            packages/apps/Launcher3/src/com/android/launcher3/folder/FolderPagedView.java
            packages/apps/Launcher3/src/com
Android Launcher中,处理应用图标拖拽Folder并进行动态文件夹创建以及提供视觉反馈,主要涉及Workspace.java中的`onDragOver()`方法。该方法是拖放过程中的核心回调之一,负责处理拖拽操作的视觉反馈和潜在的文件夹创建逻辑。 参考资源链接:[Android Launcher文件夹创建与拖拽操作解析](https://wenku.csdn.net/doc/866hhnnb7n?spm=1055.2569.3001.10343) 当用户拖拽应用图标,`onDragOver()`会不断被调用,`DragObject`对象包含了拖拽操作的详细信息。在`onDragOver()`内部,会根据`DragObject`的位置信息来更新拖拽的视觉效果,以及决定是否需要创建新的文件夹。`DragTargetLayout`和`Folder`类协同工作,负责绘制拖拽的视觉反馈,例如改变图标文件夹的形状、大小和颜色,以适应拖拽过程中用户界面的变化。 当拖动距离小于预设阈值,`manageFolderFeedback()`会被触发以调整拖动视图的样式,同`isNearestDropLocationOccupied()`检查目标位置是否已经被其他图标占用。如果目标位置为空闲,则`visualizeDropLocation()`将显示一个预览占位符,使用户能够直观地看到图标放置后的效果。 文件夹的动态创建是在拖拽操作中实完成的。当检测到拖拽目标位置为空闲,系统会通过调用`createFolder()`方法来创建一个新的文件夹,并将图标加入到文件夹中。完成这些操作之后,还会涉及到对`mDragMode`状态的更新,确保后续的拖拽操作能够在正确的模式下执行。 学习如何在Android Launcher中实现拖拽操作和动态文件夹创建,对于开发者来说是一个挑战。可以参考《Android Launcher文件夹创建与拖拽操作解析》这篇个人总结来获取深度解析。作者通过分享自己在Launcher开发中的实战经验,详细解释了文件夹创建过程中的各种状态和反馈,以及如何在Workspace.java中实现这些功能。通过本资料,你可以深入理解Launcher的工作机制,掌握文件夹创建的原理,以及如何提供清晰的视觉反馈,从而让你的Launcher产品更加人性化和高效。 参考资源链接:[Android Launcher文件夹创建与拖拽操作解析](https://wenku.csdn.net/doc/866hhnnb7n?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值