我在使用 Flex 4.6 AIR 应用程序中的 Spark List 控件时遇到问题。 这是一个具有单个列表的屏幕,我们希望用户能够对列表中的项目重新排序。 我能够让重新排序正常工作。 问题是您可以通过按住 CTRL 在列表中创建新项目将拖放项目。 我试图对这个问题进行一些谷歌搜索,但还没有找到解决这个问题的方法。 有人有什么想法吗? 任何帮助将不胜感激!
这是我用于列表的代码:
<s:List id="sampleList" left="10" top="10"
alternatingItemColors="[0xEFF3FA, 0xFFFFFF]" dataProvider="@{sampleItems.list}"
dragEnabled="true" dragMoveEnabled="true" dropEnabled="true"
labelField="name"
right="10" bottom="72"
width="300" height="350"/>
我能找到的唯一方法是在其中一个拖动事件上放置一个处理程序,并检查用户是否正在移动该项目。
private function dragHandler(event:DragEvent):void
{
if (event.action != 'move')
{
event.preventDefault();
}
}
<s:List id="sampleList" left="10" top="10" dragDrop="dragHandler(event);"
alternatingItemColors="[0xEFF3FA, 0xFFFFFF]" dataProvider="@{sampleItems.list}"
dragEnabled="true" dragMoveEnabled="true" dropEnabled="true"
labelField="name"
right="10" bottom="72"
width="300" height="350"/>