2011-08-04 43 views
1

我在Flex 4裏面有一些手風琴的代碼,裏面有幾個複選框,因爲複選框很多,我在列表裏面做了一個滾動。但是當我嘗試運行此代碼時,該複選框僅顯示爲標籤,旁邊沒有複選框。我的代碼有什麼問題。請幫助,謝謝帶複選框的Flex4.5手風琴

<mx:Accordion x="14" y="11" width="200" height="260"> 
    <s:NavigatorContent width="100%" height="100%" label="Page"> 
     <s:List x="0" y="0" width="100%" height="100%"> 
      <s:ArrayCollection id="colPage"> 
       <s:CheckBox label="View" id="chkView"> 
       </s:CheckBox> 
       <s:CheckBox label="SelectTab" id="chkSelectTab"> 
       </s:CheckBox> 
       <s:CheckBox label="setParentData" id="chkSetParentData"> 
       </s:CheckBox> 
       <s:CheckBox label="setViewData" id="chkSetViewData"> 
       </s:CheckBox> 
       <s:CheckBox label="appendString" id="chkAppendString"> 
       </s:CheckBox> 
       <s:CheckBox label="deleteLastOneCharacter" id="chkDelLastChar"> 
       </s:CheckBox> 
       <s:CheckBox label="clearString" id="chkClrStr"> 
       </s:CheckBox> 
       <s:CheckBox label="calculate" id="chkCalc"> 
       </s:CheckBox> 
       <s:CheckBox label="resetViewData" id="chkResetVwData"> 
       </s:CheckBox> 
       <s:CheckBox label="popViewController" id="chkPopVwCont"> 
       </s:CheckBox> 
       <s:CheckBox label="popToRootViewController" id="chkPopRootVwCont"> 
       </s:CheckBox> 
       <s:CheckBox label="finishModalView" id="chkFinishModView"> 
       </s:CheckBox> 
.... and many other checkboxes 
      </s:ArrayCollection> 
     </s:List> 
    </s:NavigatorContent> 
....and manu other Navigator Content 
</mx:Accordion> 

回答

1

Ouf,你的方法很多問題在這裏。你需要刪除所有的複選框。相反,使用自定義項目渲染器,在其中包含複選框(它已綁定到標籤的數據並且它當前處於選定狀態),並將渲染器設置在列表中。

然後你只需要爲列表設置dataProvider,該列表可以是一個簡單的對象,對於複選框的每個「實例」,都會重複該對象{label:'Some Label', selected:false}。通過使用這種方法,您將回收項目渲染器,增加代碼重用和性能。

+0

哇!感謝諮詢人。但我不知道你在說什麼,因爲我是flex的新手。你能夠友好地向我展示一個非常簡單的例子,我該怎麼做? –

+0

我給你你需要的信息。你只需要谷歌搜索如何做到這一點,因爲我無法爲你做所有事情。但是,這是[開始的好地方](http://help.adobe.com/en_US/flex/using/WS03d33b8076db57b9-23c04461124bbeca597-8000.html)。 –

+0

謝謝隊友,用這種方法找到了一個例子http://forums.adobe.com/message/3814048 –