【问题标题】:Flex TabbedViewNavigator deactivate event in a view视图中的 Flex TabbedViewNavigator 停用事件
【发布时间】: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


    【解决方案1】:

    您需要将事件参数传递给函数才能工作!

    viewDeactivate="viewDeactivates(event)"
    

    然后

    private function viewDeactivates(event:Event):void
                {
                    callout.close();
                }
    

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 2015-09-08
      • 2011-11-18
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      相关资源
      最近更新 更多