1

我正在制作一个 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>

还有一个信息:通过单击复制的操作栏中的第四个图标打开此弹出窗口。

知道我可以摆脱那个幽灵酒吧吗?

4

2 回答 2

1

要创建“标签栏”,您实际上可以使用带有 TabbedViewNavigatorTabBarSkin 的 ButtonBar - 正如您在我的示例中看到的那样:

Flex 移动应用程序中的 ButtonBar 字体样式 - 附有屏幕截图

我不确定 TitleWindow,它可能无法在移动应用程序中使用,但您可以使用Callout

于 2013-10-12T09:29:02.107 回答
-1

终于找到问题了……我忘记了这段实际上负责原始ActionBar皮肤的CSS:

s|ActionBar
{
skinClass: ClassReference("aproove.presentation.ActionBarSkin");
} 

由于 TabbedViewNavigator 包含一个 ActionBar,因此在我的弹出窗口中应用了相同的皮肤。很傻呵呵 ;)

于 2013-10-18T16:08:27.873 回答