我有一个简单的应用程序:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*">
<mx:ViewStack width="100%" creationPolicy="all">
<s:NavigatorContent width="100%">
<local:TestGroup width="100%"/>
</s:NavigatorContent>
<s:NavigatorContent width="100%">
<local:TestGroup width="100%"/>
</s:NavigatorContent>
</mx:ViewStack>
</s:Application>
我TestGroup
是一个光秃秃的 Spark 组。它具有 creationComplete 方法,其中跟踪组的宽度:
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="group1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function group1_creationCompleteHandler(event:FlexEvent):void
{
trace("internal group width: " + this.width)
}
]]>
</fx:Script>
</s:Group>
当我运行应用程序时,第一个TestGroup
宽度为 1600(大约是正确的),但第二个宽度creationPolicy="all"
为width="100%"
0(零)。
事实证明,ms:ViewStack
除了选定的组件之外,它没有设置组件的宽度。
这种行为背后的逻辑是什么?
如何修复它,以便我的第二组具有真正的宽度,并且我可以在创建完成时获得它?