我在Flex 4中有以下代码,其中包含几个复选框,因为复选框很多,我在列表中进行了滚动。但是当我尝试运行此代码时,复选框仅显示为标签,旁边没有复选框。我的代码有什么问题。请帮忙谢谢
<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>
答案 0 :(得分:1)
Ouf,你的方法存在很多问题。您需要删除所有复选框。相反,使用自定义项呈示器,在其中包含复选框(它已绑定到标签的数据并且它是当前选定的状态)并在列表中设置呈现器。
然后,您只需要为列表设置dataProvider,该列表可以是{label:'Some Label', selected:false}
的简单对象,对于复选框的每个“实例”都会重复该对象。通过使用此方法,您将回收项呈示器,从而提高代码重用率和性能。