【问题标题】:ItemRenderer Doesn't Resize with DataGrid ColumnItemRenderer 不使用 DataGrid 列调整大小
【发布时间】:2012-03-07 20:02:16
【问题描述】:

我有一个绑定到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 无效。

【问题讨论】:

  • width="100%" 添加到MXDataGridItemRenderer ?
  • 我想说山姆说的话。也就是说,当一列超出其边界进入另一列时;这可能是一种视觉异常,似乎没有多少编码可以解决。 DataGrid 有很多这样的。
  • 也许——但旧代码(使用内联渲染器)工作正常...

标签: apache-flex actionscript flex4


【解决方案1】:

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

奇怪的是,Flex Builder 应用程序没有给您定义最外层控件的选项,它只是在顶部添加了一个 s:MXDataGridItemRenderer...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 2018-11-24
    • 2011-05-23
    • 2011-04-21
    • 2016-01-22
    • 2011-08-20
    • 2013-10-30
    • 2011-02-13
    相关资源
    最近更新 更多