2

我构建了一个简单的 hello world 应用程序来检查 Flash Builder 4.5 的移动功能。

以下是它的工作原理:

默认视图在文本输入中询问名称并有一个继续按钮

当您单击继续按钮时,它会在 viewNavigator 中推送一个新视图,该视图仅在标签中显示“Hello”+名称。

当您单击此视图中的任意位置时,它会从 viewNavigator 中弹出一个视图(即其本身)​​,以返回默认视图

我只看到一个问题:当我回到默认视图时,它处于初始状态,即 textInput 是空白的。似乎 viewNavigator 创建了默认视图类的新视图并推送了它,而不是仅仅删除顶视图并显示前一个视图。

我认为这对于在网格中显示数据的程序尤其成问题,您可以单击数据以查看详细信息……当您返回时,网格将为空。

有什么想法或陷阱可以解决这个问题吗?

编辑:
项目名称:HelloWorld
代码如下:

HelloWorldDefaultView.mxml

protected function button1_clickHandler(event:MouseEvent):void {
    navigator.pushView(HiView, tName.text);
}

HiView.mxml

protected function view1_clickHandler(event:MouseEvent):void {
    navigator.popView();
}

protected function view1_creationCompleteHandler(event:FlexEvent):void {
    lblHello.text="Hello " + data;
}

截图

初始画面
初始画面

屏幕 2
屏幕 2

点击屏幕 2 让我们回到初始屏幕。 注意空白的 textInput
点击屏幕 2 让我们回到初始屏幕。注意空白的 textInput

4

2 回答 2

1

这就是它应该适用于移动应用程序的方式。

查看这篇文章:Flex 4.5 (Hero) – MobileApplication 中的持久数据

正如他们所写:

每次从显示列表中删除视图(通过 popView() 或 pushView())时,它的实例都会被销毁,但它的数据模型存储在内存中。

为了保存视图的会话状态,您必须修改数据属性。销毁 View 类的当前实例时将请求此属性。当导航回该视图时,数据属性值将被分配回同一视图类的新创建实例。

于 2011-09-18T10:03:39.807 回答
1

您是否尝试过设置destroyPolicy="never"然后

protected function button1_clickHandler(event:MouseEvent):void {
    data = tName.text;
    navigator.pushView(HiView, tName.text);
}

将数据存储在当前视图的数据中 - 在更改为另一个数据之前?

于 2011-09-19T09:05:48.847 回答