双击编辑list
最近想实现一个list双击编辑其项目的效果。查了一下帮助文档。看到一个createItemEditor() ? 在ListEvent.ITEM_DOUBLE_CLICK监听函数中试了几次,没有实现效果,注意到上面有句话“若要在其它时间创建编辑器,请设置 editedItemPosition 属性以生成 itemEditBegin 事件。”于是将注意力转移到editedItemPosition上。 ? 帮助文档中是这么解释editedItemPosition属性的: 正在编辑的数据提供程序项目的项目渲染器的列索引和行索引(如果有)。 所以就在DOUBLE_CLICK中指定了该属性。并在这之前打开了list的editable属性,在编辑完之后(ListEvent.ITEM_EDIT_END)将editable设回为false 。这样就实现了双击编辑list的效果。
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:List id="list" x="146" y="90" width="225" height="250" labelField="name" doubleClickEnabled="true"> <mx:dataProvider> <mx:Array> <mx:Object name="tian" /> <mx:Object name="zhang" /> <mx:Object name="diao" /> <mx:Object name="zeng" /> </mx:Array> </mx:dataProvider> </mx:List> <mx:Script> <![CDATA[ import mx.events.ListEvent; private function init():void { list.addEventListener(ListEvent.ITEM_DOUBLE_CLICK,onDoubleClick ) ; list.addEventListener(ListEvent.ITEM_EDIT_END,onEnd ) ; } private function onDoubleClick(event:ListEvent):void { list.editable = true ; var editedPosition:Object = new Object() ; editedPosition.columnIndex = event.columnIndex ; editedPosition.rowIndex = event.rowIndex ; list.editedItemPosition = editedPosition ; } private function onEnd(event:ListEvent):void { list.editable = false ; } ]]> </mx:Script> </mx:WindowedApplication> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |