2011-10-17 60 views
0

當沒有項目渲染器被使用時,我有一個正確排列的火花列表。但是,使用以下項目渲染器時,列表會混洗並顯示列表的先前實例中的項目。任何幫助,將不勝感激。Flex Spark列表組件項目順序

<?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" 
       creationComplete="itemRendererInit(event)"> 

<fx:Script> 
    <![CDATA[ 
     import flash.utils.setInterval; 

     import flashx.textLayout.conversion.TextConverter; 

     import mx.events.FlexEvent; 

     protected function itemRendererInit(event:FlexEvent):void { 
      setInterval(resizeItemRenderer, 50); 
      richtext.textFlow= TextConverter.importToFlow(
       '<TextFlow xmlns="http://ns.adobe.com/textLayout/2008"><linkNormalFormat color="#ac0000" textDecoration="none"/><linkHoverFormat color="#ac0000" textDecoration="underline"/><linkActiveFormat color="#ac0000" textDecoration="none"/><p><span fontWeight="bold">' + 
       data[0].toString() + 
       ':</span><br/><br/>' + 
       data[1].toString() + 
       '</p></TextFlow>', TextConverter.TEXT_LAYOUT_FORMAT); 
     } 

     private function resizeItemRenderer():void { 
      richtext.width = parentApplication.width-525; 
     } 
    ]]> 
</fx:Script> 

<s:RichEditableText id="richtext" 
      paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10" 
      verticalAlign="middle" editable="false" textAlign="left"/> 

</s:ItemRenderer> 

回答

0

我最終發現它是一個數據綁定問題。謝謝@ M.D。

0

就在我頭頂,嘗試覆蓋commitProperties而不是依賴creationComplete事件。在creationComplete上,只需調用invalidateProperties,然後從commitProperties()調用你的函數。