Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何在mx:Tree中使用2个不同的项目呈现器_Apache Flex_Tree_Itemrenderer_Depth - Fatal编程技术网

Apache flex 如何在mx:Tree中使用2个不同的项目呈现器

Apache flex 如何在mx:Tree中使用2个不同的项目呈现器,apache-flex,tree,itemrenderer,depth,Apache Flex,Tree,Itemrenderer,Depth,问Flex的家伙们。 根据项目在树中的深度/级别,如何在mx:Tree中使用多个项目渲染器? 例如对于第一级项目,我希望使用带有按钮的标签,对于第二级项目,我希望使用组合框 这可能吗?条件逻辑应该在单个itemrenderer中实现。不能设置多个渲染器 下面是如何实现这一点的示例: 该“if”语句显示是否有内部节点。您还可以在生成数据提供程序时指定其他属性。以下是解决方案: 在扩展树中,只需覆盖函数GetItemRenderFactory(数据:Object):IFactory并执行必要的逻辑来

问Flex的家伙们。 根据项目在树中的深度/级别,如何在mx:Tree中使用多个项目渲染器? 例如对于第一级项目,我希望使用带有按钮的标签,对于第二级项目,我希望使用组合框


这可能吗?

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

下面是如何实现这一点的示例:

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

以下是解决方案: 在扩展树中,只需覆盖函数GetItemRenderFactory(数据:Object):IFactory并执行必要的逻辑来选择适当的itemRenderer


希望这对其他人也有帮助

谢谢,我用两个扩展类实现了主itemRenderer,并在重写的函数集数据中进行了切换。但是我如何确定节点深度呢?只需要解决一些问题。。。我试图在set data()中这样做:if(depth==1){itemrender=itemRendererOne;}else{itemrender=itemRendererTwo;}但它会更改整个树中的itemrender。是否有可能仅针对特定项目切换它?
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');
        }
            }
         }