在13.0系统Launcher3进行定制化开发中,对于hotseat的开发中,由功能需求要求禁止拖动图标到Hotseat的功能,而拖拽也是在workspace.java中处理的
接下来就从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()具体处理拖拽停止后相关的图标放置的功能
public interface DropTarget