首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex 4,AdvancedDataGrid:初始列宽

Flex 4,AdvancedDataGrid:初始列宽
EN

Stack Overflow用户
提问于 2012-05-24 01:56:08
回答 1查看 1.5K关注 0票数 0

我对高级列的宽度有一个问题。首先,我的布局是一个HDividedBox,左边是导航,右边是一个模块,包含高级数据网格。

左侧:导航

右侧:模块(例如,advanceddatagrid)

大多数列的宽度都是固定的,有些是minWidth。现在,最初列的宽度是正确的。

所以问题是,每当我加载一个新模块,然后重新加载advanceddatagrid时,列的初始宽度是完全不同的,尽管我在加载模块的过程中没有任何改变。固定宽度和minWidths最初都不正确。我最近看到了一个解决列宽度错误的方法,看起来是这样的:

代码语言:javascript
复制
var oldPolicy:String = advanceddatagrid.myScrollPolicy;
advanceddatagrid.myScrollPolicy = ScrollPolicy.ON;

for(var i:int = 0; i < advanceddatagrid.columns.length; i++) {
    var column:AdvancedDataGridColumn = advanceddatagrid.columns[i] as AdvancedDataGridColumn;
    advanceddatagrid.column.width = column.width;
}
advanceddatagrid.validateNow();             
advanceddatagrid.myScrollPolicy = oldPolicy;                
advanceddatagrid.validateNow();

总体而言,这只是对ScrollPolicy的临时更改,重新设置列宽,然后再更改回来。但是,它还是起作用了。

有谁有线索吗?

EN

回答 1

Stack Overflow用户

发布于 2013-01-26 02:23:57

一些可能对我有帮助的相关参考资料(第一个对我有效):

http://userflex.wordpress.com/2011/04/14/force-resize-datagrid/

http://forums.adobe.com/message/4285461

总结第一篇文章(归功于Nick Schneble):

代码语言:javascript
复制
public function resizeColumns () : void
{
    grid.validateNow ();
    // forces the columns to size themselves properly
    for each (var column : AdvancedDataGridColumn in grid.columns)
    {
        column.width = column.width;
    } 
}

这看起来可能有点荒谬,但是如果您在数据网格中的底层数据发生变化时执行此方法,您将拥有布局精美的列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10725320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档