我有一个带有项目渲染器的List,并且想要拖放到列表中的项目上,而不是将数据添加到列表中。拖动时是否可以找到悬停的项目?
答案 0 :(得分:1)
当拖动操作开始时,您可以使用“dragHandler”保存从其他元素拖动的数据:
dragStart="dragHandler(event)"
“dragHandler”应如下所示:
protected function dragHandler(event:DragEvent):void{
yourSourceList.selectedItems;
}
您可以将selectedItems保存在矢量中,因为这是被拖动元素的性质。
然后在要放弃元素的列表的itemRenderer中,您必须在itemRenderer的元素中设置属性“dragEnter”,如Group或SkinnableContainer:
dragEnter="dragEnterHandler(event)"
您的“dragEnterHandler”应如下所示:
private function dragEnterHandler(e:DragEvent):void {
DragManager.acceptDragDrop(e.currentTarget as IUIComponent);
}
这样做会阻止元素添加到列表中。
仍然在itemRenderer的Group或Skinnablecontainer中,你应该设置一个“dragDrop”属性:
dragDrop="dragDropHandler(event)"
然后你的“dragDropHandler”应该是这样的:
private function dragDropHandler(e:DragEvent):void {
//Do something when the elements are dropped
}
这样您就不需要浏览被删除元素的事件变量,因为您已经保存了在“dragHandler”方法中拖动的项目