如何解决在Flex标签式ViewNavigator之间切换
|| 我正在使用带有三个选项卡(ViewNavigator元素)的FlexTabbedViewNavigatorApplication
。我想根据用户操作(通过ActionScript代码)从一个ViewNavigator切换到另一个。
我知道在Views之间切换使用pushView
和popView
,但是我正在使用ViewNavigator,而我的搜索没有发现有用的东西。
我正在尝试在事件发生时从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>
谢谢你的帮助!
解决方法
此类奇怪地是无证的。我自己没有尝试过,但是通过在线搜索,我发现这与网络的其余部分相符。
您需要做的是将事件冒泡到
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>
您只需要在孩子中调度冒泡事件。您可以通过事件创建一个自定义事件,该事件包含有关要切换到哪个选项卡的数据。
,我使用以下动作脚本行根据用户操作从一个“ 7”切换到另一个:
TabbedViewNavigator(navigator.parentNavigator).selectedIndex = 1;
它像一种魅力一样工作,似乎比冒泡事件更简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。