我有一个Flex列表和一个自定义ItemRenderer。我希望能够让列表中的一些项目使用不同的ItemRenderer(例如,取决于项目的类别)。这可能吗?
E.g:
<s:List dataProvider="{_systems}" itemRenderer="myItemRenderer"/>
_systems中的大多数项都使用myItemRenderer。但是如果_systems的元素3是“specialSystem”,则渲染器将是“specialItemRenderer”。
这可能吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
您使用Canvas作为ItemRenderer并实现将自动创建其他控件的机制。
您可以在本文中找到更多详细信息:Different Items renderers in List
主要观点:
您可以创建特殊的ItemRenderer 可以创建“模拟”其他控件, 在我们的例子中,它是Canvas的子类 它只是简单地创建和添加所需的 控制。然后我们需要一些机制 告诉我们的容器哪个渲染器 我们想模仿,为此我们 使用ItemContainerData特殊 字段。