我正在制作一个 Flex 移动 4.6 应用程序,即 ViewNavigatorApplication(不确定这是否会对以下内容产生任何影响)。这个应用程序有一个自定义的 ActionBar,在下面的屏幕截图中可见。
麻烦从这里开始:我想使用 TitleWindow 作为弹出窗口,它将显示 TabbedViewNavigator 中包含的一些选项。所以基本上:ViewNavigatorApplication 中的 TitleWindow 中的 TabbedViewNavigator。
这是我在简单地添加 TabbedViewNavigator 时得到的:
显然,我的主窗口的操作栏在我的 TitleWindow 中复制了,这显然不是我想要的。到目前为止,这是我的 TitleWindow 的代码:
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" creationComplete="addedToStageHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.events.FlexEvent;
import mx.managers.PopUpManager;
private var softKeyboardPanTimer:Timer = new Timer(250, 1);
protected function closeHandler(event:CloseEvent):void
{
stage.focus = null;
softKeyboardPanTimer.addEventListener(TimerEvent.TIMER, onSoftKeyboardClosed);
softKeyboardPanTimer.start();
}
private function onSoftKeyboardClosed(event:TimerEvent):void
{
stage.focus = null;
PopUpManager.removePopUp(this);
}
protected function centerPopUp(e:Event):void
{
PopUpManager.centerPopUp(this);
}
protected function addedToStageHandler(event:Event):void
{
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, centerPopUp, false, 0, true);
this.closeButton.visible = false;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Rect width="100%" height="100%">
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry ratio="0" color="#ffffff"/>
<s:GradientEntry ratio="1" color="#f8f8f8"/>
</s:LinearGradient>
</s:fill>
</s:Rect>
<s:Group x="0" y="0" width="100%" height="100%">
<s:layout>
<s:VerticalLayout paddingLeft="10" paddingRight="10" paddingBottom="10" paddingTop="10"/>
</s:layout>
<s:TabbedViewNavigator>
<s:ViewNavigator label="Tab 1"/>
<s:ViewNavigator label="Tab 2"/>
<s:ViewNavigator label="Tab 3"/>
</s:TabbedViewNavigator>
</s:Group>
</s:TitleWindow>
还有一个信息:通过单击复制的操作栏中的第四个图标打开此弹出窗口。
知道我可以摆脱那个幽灵酒吧吗?