Flex / AS3在列表中使用多个项目渲染器
我想在列表中有多个项目渲染器,因为我有几种不同类型的对象要显示。 我尝试创建一个扩展ListBase的新类,并在该函数中添加了用我的代码覆盖的公共函数createItemRenderer。 然后,我实例化新类并将其作为dataProvider的数据数组,但createItemRenderer在我的新类中永远不会调用,任何人都可以帮助我吗?
谢谢
我设法通过扩展List而不是ListBase来解决这个问题,所以谢谢shakakai让我考虑一下:)
Incase其他人有类似的问题,这里是我的代码看起来像:
public class MultipleRenderersList extends List
{
override public function createItemRenderer(data:Object):IListItemRenderer
{
if (data is Type1)
{
return new Type1Component;
}
else if (data is Type2)
{
return new Type2Component;
}
return null;
}
过去,我通过创建可处理不同类型数据的单个项目渲染器来处理此问题。 有几种方法可以做到这一点,比如根据数据类型改变状态,或者使用基于数据类型切换的ViewStack,或者使用actionscript创建/添加子组件来适当地显示数据。 只需重写项目渲染器上的设置数据方法,并根据需要切换组件。 希望有所帮助。
链接地址: http://www.djcxy.com/p/5911.html