【发布时间】:2012-07-17 19:24:08
【问题描述】:
在 Flex (4.6) 中的 <s:List> 项目渲染器中是否有办法在项目渲染器本身内识别列表中特定项目的索引?
我尝试使用类的itemIndex 属性,但它总是返回零。另外,this example on SO 给了我几个运行时错误。
感谢您的宝贵时间。
【问题讨论】:
标签: flash apache-flex indexing adobe itemrenderer
在 Flex (4.6) 中的 <s:List> 项目渲染器中是否有办法在项目渲染器本身内识别列表中特定项目的索引?
我尝试使用类的itemIndex 属性,但它总是返回零。另外,this example on SO 给了我几个运行时错误。
感谢您的宝贵时间。
【问题讨论】:
标签: flash apache-flex indexing adobe itemrenderer
我刚刚注意到 itemIndex 不起作用,因为它的值尚未在列表创建的生命周期中设置。
在项目渲染器中,我正在侦听addedToStage 事件并在其处理程序中使用itemIndex。一旦我将addedToStage 事件更改为creationComplete,itemIndex 然后就有了正确的值。
希望对某人有所帮助。
【讨论】:
主要应用:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
width="100%"
height="100%"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:List itemRenderer="IndexedItemRenderer">
<s:dataProvider>
<s:ArrayList>
<fx:String>Item A</fx:String>
<fx:String>Item B</fx:String>
<fx:String>Item C</fx:String>
<fx:String>Item D</fx:String>
<fx:String>Item E</fx:String>
</s:ArrayList>
</s:dataProvider>
</s:List>
</s:Application>
IndexedItemRenderer 项目渲染器:
<?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"
autoDrawBackground="true">
<s:Label text="{itemIndex + 1}. {data}"/>
</s:ItemRenderer>
【讨论】:
itemIndex 没有返回正确的值。我在上面发布了我的答案。