我有一个工作正常的简单测试示例,我将拖放属性设置为 true,如下所示:<s:List dragMoveEnabled="true" dragEnabled="true" dropEnabled="true">
与工作的测试应用程序和我的真实应用程序的区别在于,真实应用程序上的布局更复杂(我使用的是 ViewStacks 和 Groups)和 dataProvider。在所有情况下,我都使用 ArrayCollection,但在真正的应用程序中,我有一些 SearchResults 对象(这些不是动态对象)。
拖动动画在那里,但在放下时,鼠标下的项目被选中。如果我没有设置dragMoveEnabled,那么该项目会以某种方式被复制,但在它的位置我会看到一个对象。
//工作示例
<s:List dragMoveEnabled="true" dragEnabled="true" dropEnabled="true">
<s:dataProvider>
<s:ArrayCollection>
<fx:Object label="Item 1" data="1" />
<fx:Object label="Item 2" data="2" />
<fx:Object label="Item 3" data="3" />
</s:ArrayCollection>
</s:dataProvider>
</s:List>
这是来自我的应用程序并且无法正常工作
<s:List id="favSavedSearchesList" width="100%" height="100%"
contentBackgroundColor="#dfe4ea"
change="favSavedSearchesList_changeHandler(event)"
itemRenderer="generic_components.RemoveItemRenderer"
dragMoveEnabled="true" dragEnabled="true" dropEnabled="true"/>
更新:我做了一些测试并用字符串的 ArrayCollection 替换了我的 dataProvider 并且它起作用了,所以我现在可以排除应用程序的复杂布局并查看提供程序