これが起こっていることです:私は次のタブを持つTabnavigatorを持っています:
<s:NavigatorContent width="100%" height="100%" label="Add a logo" includeIn="loggedin">
<components:LogoSearch />
</s:NavigatorContent>
次のコードで状態を「loggedin」に変更すると、次のようになります。
protected function Login_getStateHandler(event:Event):void
{
this.currentState = "loggedin";
}
navigatorContentは、コンポーネント「LogoSearch」を表示しますが、デザインビューでは表示しませんが、状態を切り替えると表示されます。
「LogoSearch」で定義された状態はなく、表示されるはずです...?
タブナビゲーターを「loggedin」だけでなく「normal」にも含めてから、状態を「loggedin」に変更すると、コンポーネント「LogoSearch」が表示されます。「loggedin」にタブナビゲーターのみを表示し、状態を「loggedin」に変更すると、コンポーネント「LogoSearch」が表示されません。
なぜこれが起こっているのか考えていますか?私はフレックスのプロではないので、遠慮なく私の間違いを指摘してください。ありがとう。
Tianzhen Linによって提案されたように、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のコンテンツは表示されません。