ItemRenderer不会使用DataGrid列调整大小

时间:2012-03-07 20:02:17

标签: flex actionscript flex4

我有一个项目渲染器绑定到mx:DataGrid列。渲染器曾经与列内联,但我已将其移出到自己的文件中,因此我可以在多个表中重复使用它。

问题是现在渲染器在调整列大小时不会调整大小(增大/缩小)。因此,如果用户使列非常小,则渲染器显示的内容只占用空间并显示在其他列的顶部任何想法如何使其工作?

项目渲染器的代码:

<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                          xmlns:s="library://ns.adobe.com/flex/spark" 
                          xmlns:mx="library://ns.adobe.com/flex/mx" 
                          focusEnabled="true">
    <mx:HBox verticalScrollPolicy="auto" horizontalScrollPolicy="off" width="100%">
        <mx:Spacer top="0" bottom="0" width="4" />
        <mx:Image id="typeIcon" buttonMode="false" source="{data.type}" />
    </mx:HBox>
</s:MXDataGridItemRenderer>

使用该渲染器的列代码:

<mx:DataGridColumn headerText="Type" dataField="type" itemRenderer="com.myCompany.myProject.TypeRenderer" />

修改

width=100%添加到MXDataGridItemRender无效。

1 个答案:

答案 0 :(得分:0)

我在Adobe的flex论坛上发布了我的问题 - 解决方案是删除外部s:MXDataGridItemRenderer并让mx:HBox成为根控件(不需要进行其他更改。)

奇怪的是,他的Flex Builder应用程序没有为您提供定义最外层控件的选项,它只是在顶部放置s:MXDataGridItemRenderer ...