0

我正在开发 sencha touch 应用程序,它有很多视图并且视图之间有很多导航,我使用以下代码做到了这一点

Ext.Viewport.add({
    xtype : 'view2'
});
Ext.Viewport.animateActiveItem(this.getView2(), {
    type : 'slide',
    direction : 'right'
});

但是,假设当用户从 view1 导航到 view2 和 view2 到 view3 时,从 view3 中,当用户返回按钮时,我编写了上面的代码来从 view3 导航到 view2。

上面的代码可以正常工作,但是 view1 首先像闪电一样出现,然后移动到 view2。

在视图之间导航时,有时也会出现白页。

4

1 回答 1

1

在 sencha touch 中提供了一个完全用于此目的的组件(用于处理多视图推送/弹出),它是NavigationView。如果您参考文档,您会看到提供了许多配置选项,可以帮助您设计和维护视图。导航视图最棒的地方在于,back button每当你推送一个新视图时,你都会得到一个。

基本上,这个想法是,将父视图作为导航视图,并将所有其他视图作为子视图添加到该父视图。因此,每当您添加一个新孩子时,它都会被推入堆栈。和堆栈一样,我们可以将视图推送或弹出该导航视图或从该导航视图中弹出视图。

导航视图还有一个很酷的地方是,你不必再担心 DOM 的大小了。通过正确的配置设置,sencha touch 将在弹出时立即删除未使用或不必要的视图。这将帮助您提高应用程序的性能。

我在几乎所有深度视图级别高达 6-7 的项目中都使用了导航视图。如果处理得当,它永远不会成为问题。

您正在遵循的当前策略可能存在其他问题,但您可以改用导航视图并查看差异,我强烈建议您这样做。

于 2013-04-08T10:48:15.590 回答