Android 发送 DragEvents 的拖放问题

Android drag and drop issue with sending DragEvents

我在我的项目中集成了拖放框架。在布局中,我有自己的自定义单元格网格,我希望能够拖动这些单元格以按顺序滑动或将 2 个单元格放在文件夹中。

为了实现这一点,我所做的是构建自定义 RelativeLayout 并覆盖 onDragEvent() 回调。

基本上一切正常,但我在拖动过程中将 2 个单元格放入大文件夹时遇到问题。

此文件夹从流程开始就处于布局中,可见性已消失,我通过复制这些单元格将其可见性更改为可见。问题是 RelativeLayout 文件夹在拖动事件流方面存在问题。流有时会停止,如果我停止运动一段时间就会继续。

我考虑将所有拖动逻辑移动到父级,这样只有 1 个视图将获得所有事件,但我真的更喜欢找到解决方案并坚持我的逻辑,因为它利用了关于哪个视图当前位于下方的框架数据拖动视图。

经过大量尝试和研究后,我发现当视图的 alpha 属性不同于 1 时,拖放框架会停止发送大部分 DragEvent。