我正在使用Flex开发一个ViewNavigatorApplication,我正在尝试弄清楚如何正确地使用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()在需要的地方等等。
我似乎找不到任何关于这方面的文档,但如果我遗漏了什么,请与我分享。
谢谢!
发布于 2012-09-23 09:16:28
如果您的StartView类扩展了View类,则可以将其destructionPolicy属性设置为"never“。这将使ViewNavigator重用该特定视图,而不是每次导航到该视图时都创建一个新视图。
在Flex中,这样的东西通常会被重用,但在移动应用程序中,Adobe似乎在释放内存方面犯了错误。
https://stackoverflow.com/questions/12548906
复制相似问题