Drag and drop item renderer(panel) within list

徘徊边缘 提交于 2020-01-06 05:40:07

问题


I have a spark List,its item renderer is a panel,and in the panel there are some components such as Textinput,now I want to drag and drop a panel within the List,how can I do that,could you pls show me the code,thanks.


回答1:


The list in flex has a default drag and drop functionality. So basically all you need to do is to set 3 properties to true to your list: dragMoveEnabled, dragEnabled and dropEnabled. So your list if you add it from mxml will look like this:

<s:List dataProvider="{yourDataProvider}" dragMoveEnabled="true" dragEnabled="true" dropEnabled="true" />

For more details about these 3 properties you can check the spark list documentation: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/List.html#dragMoveEnabled




回答2:


thanks for your help.Now I catch an error while draging the itemRenderer(my flex sdk is 4.5.1). My list itemRenderer:

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" 
            width="100%" height="100%">
    <fx:Script>
    <![CDATA[
        import mx.events.CloseEvent;


        override public function set data(value:Object ) : void{
            super.data = value;
        }

        protected function closeHandler(event:CloseEvent):void
        {
            //ToDo
        }

    ]]>
</fx:Script>
    <s:TitleWindow x="0" y="0" title="{data.label}"
               width="100%" height="100%" creationPolicy="all"
               skinClass="skin.titleWindowSkin" 
               close="closeHandler(event)">
    <s:Label text="{data.value}"/>

    <s:TextInput x="123" y="58" text="@{data.value}" 
                 focusIn="parentDocument.owner.dragEnabled=false" 
                 focusOut="parentDocument.owner.dragEnabled=true"/>

</s:TitleWindow>
</s:ItemRenderer>

While draging,catch an error like: Error: Skin for DragProxy261.ListItemDragProxy260.DspDesktopItemRenderer262._DspDesktopItemRenderer_TitleWindow1.titleWindowSkin264.Group265.contents._titleWindowSkin_Group5.contentGroup._DspDesktopItemRenderer_TextInput1 cannot be found. at spark.components.supportClasses::SkinnableComponent/attachSkin()[E:\dev\4.5.1\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:698]



来源:https://stackoverflow.com/questions/8816395/drag-and-drop-item-rendererpanel-within-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!