android12,长按图标不拖拽就不会有ACTION_DRAG_LOCATION,但android10有,这是Google对源码进行了修改吗,在哪里修改的
时间: 2024-03-03 10:53:49 浏览: 180
在android手机的页面上显示一个可随意拖动的图标
3星 · 编辑精心推荐
是的,Google在 Android 12 中对长按图标的行为进行了修改,取消了在用户长按应用图标但不拖拽时触发 ACTION_DRAG_LOCATION 事件的行为。这是通过修改 `Launcher` 应用的源代码实现的。
具体来说,这个修改在 `Launcher` 应用的 `DragController` 类中实现。在 Android 12 中,`DragController` 类的 `onDragStart` 方法中加入了以下代码:
```java
if (previewBuilder == null) {
return;
}
```
这个判断会在用户长按应用图标但不拖拽时直接退出拖拽操作,从而避免触发 ACTION_DRAG_LOCATION 事件。而在 Android 10 中,这个判断并不存在,因此即使用户不拖拽应用图标,也会触发 ACTION_DRAG_LOCATION 事件。
需要注意的是,这个修改是在 `Launcher` 应用中实现的,因此只对默认的桌面应用生效。如果用户使用的是第三方的桌面应用,则其行为可能与 Android 12 的默认桌面应用不同。
阅读全文