Apache flex 设置AdvancedDataGrid';高级DataGridRenderProvider渲染时的行高度

Apache flex 设置AdvancedDataGrid';高级DataGridRenderProvider渲染时的行高度,apache-flex,itemrenderer,advanceddatagrid,Apache Flex,Itemrenderer,Advanceddatagrid,灵活的家伙 无法使用自定义AdvancedDataGridRenderProvider datagrid渲染器设置AdvancedDataGrid中的行高度 代码如下 <mx:AdvancedDataGrid id="docId" visible="true" width="100%" height="100%"

灵活的家伙

无法使用自定义AdvancedDataGridRenderProvider datagrid渲染器设置AdvancedDataGrid中的行高度

代码如下

<mx:AdvancedDataGrid id="docId" 
                                     visible="true"
                                     width="100%" height="100%"
                                     dataProvider="{data}" 
                                     horizontalScrollPolicy="on"
                                     verticalScrollPolicy="on"
                                     styleName="MyStyle"
                                     styleFunction="getRowColours" 
                                     headerStyleName="MyStyle2"
                                     >
                    <mx:columns>
                        <mx:AdvancedDataGridColumn id="Name" dataField="name" 
                                                   headerText="Name" /> 
                        <mx:AdvancedDataGridColumn id="Value" dataField="values" 
                                                   headerText="Value" 
                                                   editable="true" />
                    </mx:columns>
                    <mx:rendererProviders>
                        <mx:AdvancedDataGridRendererProvider  id="DocID2"
                                                              columnIndex="1" columnSpan="1"
                                                              renderer="{new ClassFactory(MyRenderer)}" />
                    </mx:rendererProviders>
                </mx:AdvancedDataGrid>

您尚未在ADG中设置variableRowHeight=true。如果不希望使用rowHeight=Number变量,也可以使用它。从这里开始,您的项目渲染器需要有一个特定的高度(数字),而不是一个百分比,否则它将无法工作。

谢谢@J_a_X,我对其进行了重新处理,并按照需要按预期工作。
<mx:AdvancedDataGrid id="adg" dataProvider="{input}" height="350" variableRowHeight="true" >
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="company" headerText="Company"/>
            <mx:AdvancedDataGridColumn dataField="product" headerText="Product"/>
        </mx:columns>
        <mx:rendererProviders>
            <mx:AdvancedDataGridRendererProvider  id="myDataGridRenderer"
                                                  columnIndex="1" columnSpan="1"
                                                  renderer="{new ClassFactory(DataGridRowTestRenderer)}" />
        </mx:rendererProviders>
    </mx:AdvancedDataGrid>
    import spark.components.Label;
    import spark.components.TextArea;

    private var label1:Label;
    private var textArea1:TextArea;
    private var index:int;

    override public function set data(object:Object):void {
        super.data = object;

        this.removeAllElements();

        label1 = new Label();
        label1.text = object.company;

        this.addElement(label1);

        var textArea:TextArea = new TextArea();
        //textArea.text = object.product;
        //textArea.heightInLines = 2;

        index = object.index as int;

        textArea.heightInLines = index+1;

        textArea.text = object.product;
        /* if((index%2) == 0){
            textArea.heightInLines = 2;
        }else{
            textArea.heightInLines = 4;
        } */
        this.addElement(textArea);
    }

    override public function validateDisplayList():void{
        super.validateDisplayList();
    }

]]>