如何在mx:Tree中使用2个不同的项呈示器

时间:2010-03-20 21:20:51

标签: flex tree itemrenderer depth

Flex家伙的问题。 如何在mx:Tree中使用多个项目渲染器,具体取决于树中项目的深度/级别? 例如。对于第一级项目,我想使用带按钮的标签和二级项目组合框。

这有可能吗?

2 个答案:

答案 0 :(得分:2)

这是解决方案: 在扩展树中,只需覆盖函数getItemRendererFactory(data:Object):IFactory并执行必要的逻辑以选择正确的itemRenderer。

希望这也有助于其他人

答案 1 :(得分:1)

条件逻辑应该在单个itemrenderer中实现。您无法设置多个渲染器。

以下是如何实现此功能:http://cookbooks.adobe.com/post_How_do_I_create_a_Tree_itemRenderer_-62.html

override public function set data(value:Object):void
        {
            if(value != null)
            { 
                super.data = value;
                if(TreeListData(super.listData).hasChildren)
                {
                    setStyle("color", 0x660099);
                    setStyle("fontWeight", 'bold');
        }
        else
        {
            setStyle("color", 0x000000);
            setStyle("fontWeight", 'normal');
        }
            }
         }  

'if'语句显示你是否有内部节点。您还可以在生成数据提供程序时指定其他属性。