2009-12-31 96 views
1

我想在我的應用程序中添加一個複選框到列表組件,並且一切工作都很好,直到我滾動瀏覽數據。帶複選框的Flex列表組件

當我在列表中垂直滾動時,我可能添加的任何檢查開始添加到我的列表中的其他項目,有時我檢查的原始項目不再被檢查。 例如,我的列表高度足以看到5個項目,我檢查項目1,向下滾動,每隔5個項目開始檢查。

這真的很奇怪,我一直無法弄清楚它爲什麼這樣做。我在網上看了一些例子,就我所知,我沒有做任何不同的事情。

我跑過一些痕跡,Checkbox datachange事件在我滾動列表時觸發,但是我不知道爲什麼。

這是我的List的mxml測試頁面。

任何幫助表示讚賞,謝謝。


<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <mx:Array id="arr"> 
     <mx:Object label="One" /> 
     <mx:Object label="Two" /> 
     <mx:Object label="Three" /> 
     <mx:Object label="Four" /> 
     <mx:Object label="Five" /> 
     <mx:Object label="Six" /> 
     <mx:Object label="Seven" /> 
     <mx:Object label="Eight"/> 
     <mx:Object label="Nine" /> 
     <mx:Object label="Ten" /> 
     <mx:Object label="Eleven" /> 
     <mx:Object label="Twelve" /> 
    </mx:Array> 

    <mx:List 
     id="addrList" 
     height="100" 
     width="100%" fontSize="10" 
     borderStyle="solid" 
     borderColor="#000000" 
     borderThickness="1" 
     dataProvider="{ arr }"> 
     <mx:itemRenderer> 
      <mx:Component> 
       <mx:CheckBox 
        change="trace('change')" 
        dataChange="trace('dataChange')"/> 
      </mx:Component> 
     </mx:itemRenderer> 
    </mx:List> 
</mx:Application> 
+0

你有沒有設法弄清楚問題是什麼? – 2010-03-19 10:28:23

回答

0

你把一個對象列表數據提供程序,數據提供程序支持純文本

試試這個

<mx:Script> 
     <![CDATA[ 
      [Bindable] 
      private var arr:Array = ["a","b","c","d","e","f","g"]; 
     ]]> 
    </mx:Script> 

    <mx:List 
     id="addrList" 
     height="100" 
     width="100%" fontSize="10" 
     borderStyle="solid" 
     borderColor="#000000" 
     borderThickness="1" 
     dataProvider="{ arr }"> 
     <mx:itemRenderer> 
      <mx:Component> 
       <mx:CheckBox change="trace('change')" 
       dataChange="trace('dataChange')"/> 
      </mx:Component> 
     </mx:itemRenderer> 
    </mx:List> 
+1

當你說dataprovider僅支持文本時,我不同意你的看法。我必須承認,我不明白爲什麼你的答案能解決問題,爲什麼這被接受爲正確的答案。 – duTr 2013-06-12 00:29:37