0

我正在ViewNavigatorApplication使用 Flex 并试图弄清楚如何正确使用navigator.

我的问题是,如果您有以下情况:

<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                            xmlns:s="library://ns.adobe.com/flex/spark"
                            firstView="views.IntroView">

    <s:navigationContent>
        <s:Button label="Home" click="navigator.popToFirstView()"/>
        <s:Button label="Start" click="navigator.pushView(StartView)"/>
    </s:navigationContent>
</s:ViewNavigatorApplication>

Start多次按下按钮,StartView创建多个实例,这是合理的,因为这或多或少是一堆视图。您可以通过点击移动设备的后退按钮来确认。

有没有办法轻松避免这种情况,或者我是否必须编写一个(非常复杂的)“控制器”来跟踪内容并确保每个视图只能推送一个实例,popView()在需要的地方等等。

我似乎找不到任何文档,但如果我遗漏了什么,请与我分享。

谢谢!

4

1 回答 1

2

如果您的StartView课程扩展了View课程,您可以将其destructionPolicy属性设置为“从不”。这将ViewNavigator重新使用该特定视图,而不是每次导航到时都创建一个新视图。

在 Flex 中,这样的东西被重用是典型的,但在移动应用程序中,Adobe 似乎在释放内存方面犯了错误。

于 2012-09-23T01:16:28.443 回答