我在尝试调整 DataGrid 中的列大小时遇到严重问题。我已经坚持了一天多,但我却因头疼而不知所措。
本质上,我有一个 TabNavigator 组件,其中包含 NavigatorContent 子项。在每个 NavigatorContent 子项中,我都有一个 DataGrid,我将其宽度设置为 100%(这需要能够处理浏览器窗口的大小调整)。我使用来自 Iwo Banas 的优秀可过滤 DataGrid作为每个选项卡中的 DataGrid。
现在,我在每个 DataGrids 中使某些列可见/不可见,这工作正常。但是,我发现列宽设置不正确。每当我设置列宽(使用此代码)时,所有列似乎都设置为正确的宽度,除了我最近使其可见的列和紧靠这些列左侧的列。最近显示的那些非常小(尽管我将它们的宽度设置为 30),而这些列左侧的那一列非常大(尽管我也将其宽度设置为 30)。
我认为这与 DataGrids 的生命周期有关,因为第一个 DataGrid 表现良好。当我单击其他选项卡时,我发现其他 DataGrids 的宽度没有正确设置。
但是,如果我“看到”其中一个问题 DataGrids(即它出现在屏幕上)并且调整列大小的代码再次运行,则列的大小是正确的。
我已经尝试了许多在互联网上推荐的东西,包括下面列出的问题,但无济于事。
这是我用来调整列大小的代码(取自这个答案)
public static function resizeColumn(col:DataGridColumn, size:int):void
{
var owner:* = col.mx_internal::owner
col.mx_internal::owner = null;
col.width = size;
col.mx_internal::owner = owner;
}
任何和所有的帮助将不胜感激。
我已经看过以下答案。 Flex DataGrid 列宽:一列来统治它们? Flex 3 DataGrid Column Width Problem Flex DataGrid Column Width (<--这个答案让我最接近) 无法在 flex datagrid 中动态更改列宽