2

我正在使用TabbedViewNavigatorApplication具有三个选项卡(ViewNavigator 元素)的 Flex。我想根据用户操作(通过 ActionScript 代码)从一个 ViewNavigator 切换到另一个。

我知道在视图之间切换使用pushViewand popView,但我正在使用 ViewNavigators,我的搜索显示没有任何用处。

发生事件时,我正在尝试从 Tab2 切换到 Tab1。在这种情况下,Tab2 包含一个列表,当用户进行选择时,我想跳回 Tab1。

<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                                  xmlns:s="library://ns.adobe.com/flex/spark"
                                  creationComplete="onAppReady(event)">
    <s:ViewNavigator label="Tab1" width="100%" height="100%" firstView="views.TabOneView"/>
    <s:ViewNavigator label="Tab2" width="100%" height="100%" firstView="views.TabTwoView"/>
    <s:ViewNavigator label="Tab3" width="100%" height="100%" firstView="views.TabThreeView"/>
</s:TabbedViewNavigatorApplication>

谢谢你的帮助!

4

2 回答 2

6

我使用以下 ActionScript 行ViewNavigator根据用户操作从一个切换到另一个:

TabbedViewNavigator(navigator.parentNavigator).selectedIndex = 1;

它就像一个魅力,看起来比冒泡事件更简单。

于 2011-08-28T22:50:23.923 回答
2

这个类奇怪地没有记录。我自己没有尝试过,但是通过在线搜索,我发现这与网络其他部分的功能相符。

您需要做的是将事件冒泡到 ,TabbedViewNavigatorApplication然后从那里将selectedIndex属性更改为您需要更改的任何选项卡。例如:

<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                                  xmlns:s="library://ns.adobe.com/flex/spark"
                                  creationComplete="onCreationComplete()">
    <fx:Script>
        <![CDATA[
            private function onCreationComplete():void
            {
                this.addEventListener('someEvent', someHandler);
            }

            private function someHandler(e:Event):void
            {
                this.selectedIndex = 0; // or whatever index you want. 
            }
        ]]>
    </fx:Script>
    <s:ViewNavigator label="Tab1" width="100%" height="100%" firstView="views.TabOneView"/>
    <s:ViewNavigator label="Tab2" width="100%" height="100%" firstView="views.TabTwoView"/>
    <s:ViewNavigator label="Tab3" width="100%" height="100%" firstView="views.TabThreeView"/>
</s:TabbedViewNavigatorApplication>

你只需要从你的孩子内部发送一个冒泡事件。您可以事件创建一个自定义事件,其中包含有关切换到哪个选项卡的数据。

于 2011-05-27T23:11:39.770 回答