双击编辑list

最近想实现一个list双击编辑其项目的效果。查了一下帮助文档。看到一个createItemEditor()
方法:
createItemEditor():
使用由 itemEditor 属性指定的编辑器在 editedItemPosition 为项目渲染器创建项目编辑器。
此方法将编辑器实例设置为 itemEditorInstance 属性。
您只能从 itemEditBegin 事件的事件侦听器中调用此方法。若要在其它时间创建编辑器,请设置editedItemPosition 属性以生成 itemEditBegin 事件。

 

ListEvent.ITEM_DOUBLE_CLICK监听函数中试了几次,没有实现效果,注意到上面有句话若要在其它时间创建编辑器,请设置 editedItemPosition 属性以生成 itemEditBegin 事件。于是将注意力转移到editedItemPosition上。

 

帮助文档中是这么解释editedItemPosition属性的:

正在编辑的数据提供程序项目的项目渲染器的列索引和行索引(如果有)。
Object 包含 columnIndex rowIndex 这两个字段,分别是项目的从零开始的列索引和项目索引。对于 List 控件,columnIndex 属性始终为 0;例如:{columnIndex:0,rowIndex:3}
设置此属性会将项目滚动到视图中,并会调度itemEditBegin 事件以打开指定项目上的项目编辑器。
此属性可用作数据绑定的源。

所以就在DOUBLE_CLICK中指定了该属性。并在这之前打开了listeditable属性,在编辑完之后(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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值