【发布时间】:2018-02-05 14:39:08
【问题描述】:
我想在列表中实现“动态”拖放。通过“动态”,我的意思是在发生拖动的列表中,拖动元素下方有一个空白区域,当您拖动列表时“跟随它”(以便在视觉上明显地看到拖放元素最终会在名单)。就像您在支持 D&D 的 iOS/Android 应用程序中看到的一样。
我尝试的是使用 Component.dragEnter 在拖动的组件下方插入一个具有拖动元素大小的空组件。随着拖动在列表中移动,删除旧组件并在新位置插入一个新组件(解释为什么我在下一段中创建一个新组件)。但是,由于 CN1 在拖动时进行的动态更新,以及在移动空组件时我自己的更新,我只是找不到让它工作的方法,所以我得到了正确的正常行为。使这比您最初想象的更复杂的一个方面是 CN1 对拖放的内置支持使原始拖动的组件使用 setVisible(false) 不可见,这意味着它留下了一个空白空间。
我重新创建一个新的空组件的原因是因为最终的 drop() 将发生在空组件上,而我实现这项工作的技巧是覆盖空组件上的 drop() 以在 dropTarget 上调用 drop (was) 在组件的位置。
总而言之,我已经花了我不知道多少天试图让这个工作到目前为止没有成功。让我知道是否有人对更直接的方法有建议?
提前致谢!
【问题讨论】: