这就是正在发生的事情:我有一个带有以下选项卡的 Tabnavigator:
<s:NavigatorContent width="100%" height="100%" label="Add a logo" includeIn="loggedin">
<components:LogoSearch />
</s:NavigatorContent>
当我使用以下代码将状态更改为“登录”时:
protected function Login_getStateHandler(event:Event):void
{
this.currentState = "loggedin";
}
navigatorContent 在设计视图中显示但不显示组件“LogoSearch”,但是当我切换状态时它会显示。
“LogoSearch”中没有定义任何状态,应该显示......?
当我在“正常”和“登录”中包含选项卡导航器时,然后将状态更改为“登录”,组件“LogoSearch”显示。当我只在“loggedin”中显示 tabnavigator 时,将状态更改为“loggedin”,组件“LogoSearch”不显示。
知道为什么会这样吗?我根本不是 flex 方面的专家,所以请随时指出我的错误。谢谢。
按照林天振的建议,尝试使用 invalidateDisplayList() 和 invalidateProperties() 。仍然没有任何显示。
<s:NavigatorContent width="100%" height="100%" label="Add a logo" includeIn="loggedin" id="AddLogoTab" >
<s:Label text="test" id="test" />
</s:NavigatorContent>
和 :
protected function Login_getStateRegisterHandler(event:Event):void
{
this.currentState = "register";
test.invalidateDisplayList();
test.invalidateProperties();
test.validateNow();
AddLogoTab.invalidateDisplayList();
AddLogoTab.invalidateProperties();
AddLogoTab.validateNow();
}
无论我做什么,状态更改后 NavigatorContent 的内容都不会显示。