0

我有标准Group控制,我正在为它编写新的布局。在这个布局中,我是覆盖updateDisplayList方法。经过一些计算,我想将Group控件的大小更改为此方法中的计算值,如下所示:

override public function updateDisplayList(containerWidth:Number, containerHeight:Number):void {
///// Here are some calculations.
layoutTarget.width = maxWidth;
layoutTarget.height = maxHeight + _padding;
}

但是当我这样做时,我在这里得到了无限循环。updateDisplayList被一遍又一遍地调用。并且每次调用layoutTarget都有旧的宽度/高度值。有没有正确的方法来改变layoutTarget大小updateDisplayList

4

1 回答 1

1

对于布局,您应该在测量方法中更改目标大小并设置测量的..值而不是直接设置宽度/高度

override public function measure():void
{
    //calculate maxWidth and maxHeight here
    target.measuredWidth = target.measuredMinWidth = maxWidth;
    target.measuredHeight = target.measuredMinHeight = maxHeight+_padding;
}

measureWidth/Height 是首选组件尺寸,measuredMinWidth/Height 是组件的最小尺寸。

于 2013-01-17T13:57:04.800 回答