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

上一篇: Flex/AS3 Using Multiple Item Renderers In a List

下一篇: Weird behavior of custom item renderer in Flex 4