在13.0系统rom进行定制化开发Launcher3中,会对Launcher3 做些要求,比如现在的需求就是Launcher3第一屏的图标固定,不让其他屏的图标拖动到
第一屏所以说这个需求和 禁止拖拽图标到Hotseat类似,也是从WorkSpace.java里面寻找解决方案,然后实现相关功能
packages/apps/Launcher3/src/com/android/launcher3/DropTarget.java
packages/apps/Launcher3/src/com/android/launcher3/Workspace.java
DropTarget是一个可放置drop区域的抽象,也就是说在我们放开手势拖拽的时候,想要把它放置在某个地方,这个地方就是
DropTarget这个对象,而这个对象可以指文件夹,workspace,删除区等等
工作区(Workspace)是指桌面上显示应用程序和小部件的区域,而在拖拽的时候,拖拽开始时,通过回调
onDragStart() 通知监听者拖拽已经开始,在 Launcher3 中,注册拖拽监听者的有 Folder 、Workspace 、
ButtonDropTarget.java、 SecondDropTarget.java、 DeleteDropTarget.java、WidgetHostViewLoader
中都有拖拽的监听接口,在workspace中的onDrop()具体处理拖拽停止后相关的图标放置的功能