我可以为不同的列表项使用不同的ItemRenderer吗?

时间:2010-08-03 17:24:04

标签: flex actionscript-3 flex4

我有一个Flex列表和一个自定义ItemRenderer。我希望能够让列表中的一些项目使用不同的ItemRenderer(例如,取决于项目的类别)。这可能吗?

E.g:

<s:List dataProvider="{_systems}" itemRenderer="myItemRenderer"/>

_systems中的大多数项都使用myItemRenderer。但是如果_systems的元素3是“specialSystem”,则渲染器将是“specialItemRenderer”。

这可能吗?

2 个答案:

答案 0 :(得分:2)

使用itemRendererFunction

这是blog post tutorial on that。我也触及了this here

答案 1 :(得分:1)

您使用Canvas作为ItemRenderer并实现将自动创建其他控件的机制。

您可以在本文中找到更多详细信息:Different Items renderers in List

主要观点:

  

您可以创建特殊的ItemRenderer   可以创建“模拟”其他控件,   在我们的例子中,它是Canvas的子类   它只是简单地创建和添加所需的   控制。然后我们需要一些机制   告诉我们的容器哪个渲染器   我们想模仿,为此我们   使用ItemContainerData特殊   字段。