【发布时间】:2014-03-01 22:15:42
【问题描述】:
我有一个 TabbedView 应用程序,它看起来像这样:
<s:TabbedViewNavigator width="100%" height="100%" left="0" bottom="0" right="0">
<s:ViewNavigator label="viewA" firstView="views.viewA" width="100%" height="100%"/>
<s:ViewNavigator label="viewB" firstView="views.viewB" width="100%" height="100%"/>
</s:TabbedViewNavigator>
这将在应用程序底部创建一个带有两个按钮的按钮栏。 现在我可以轻松地在 viewA 和 viewB 之间切换了。
当我在 viewA 中定义一个按钮来触发一个 CallOut(flex 中的组件)时,它会显得漂亮而流畅。 我还创建了一个关闭按钮来关闭 CallOut。
callout.close();
到目前为止一切顺利。
当我使用按钮打开viewA中的CallOut窗格时,就会出现问题。 然后切换到 viewB,CallOut 窗格仍然存在于屏幕上并且没有关闭。
所以我尝试了这些事件: viewDeactivate 或/和停用
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
viewDeactivate="viewDeactivates()"
deactivate="viewDeactivates()"> <!-- or this -->
但是在标签viewA和viewB之间切换时似乎没有事件。 viewDeactivate 或 deactivate 没有做任何事情。
我可以在 TabbedViewNavigator 上使用事件监听器,然后关闭 CallOut 组件(如果存在于 TabbedViewNavigatorView 的 viewA 或 viewB 中),但这不是一种好的编程方式,尤其是当您有多个 CallOut 组件时。
有谁知道这个问题是否有好的解决方案? 对我有很大帮助,在此先感谢!
【问题讨论】:
标签: apache-flex air components