我正在开发sencha touch应用程序,它有很多视图,视图之间有很多导航,我用下面的代码做了这个
Ext.Viewport.add({
xtype : 'view2'
});
Ext.Viewport.animateActiveItem(this.getView2(), {
type : 'slide',
direction : 'right'
});
但是,让我们说当用户从view1导航到view2并从view2导航到view3时,从view3开始,当用户选中后退按钮时,我编写了上面的代码,从view3导航到view2。
上面的代码工作正常,但是view1首先像flash一样,然后移动到view2。
有时在视图之间导航时会出现白页。
答案 0 :(得分:1)
sencha touch中提供了一个完全用于此目的的组件(用于处理多个视图推/弹),它是NavigationView。如果你引用文档,你会发现有很多配置选项可以帮助你设计和维护视图。
关于导航视图最重要的是,每当您推送新视图时,您都会获得back button
。
基本上,我们的想法是,将父视图作为导航视图,将所有其他视图作为子视图添加到此父视图中。所以无论何时你添加一个新的孩子,它都会被推到堆栈上。和堆栈一样,我们可以在此导航视图中推送或弹出视图。
导航视图的另一个很酷的事情是,您不必再担心DOM大小了。通过正确的配置设置,sencha touch将在它们被拔出时立即删除未使用或不必要的视图。这将帮助您提高应用程序的性能。
我几乎在所有项目中都使用了导航视图,其深度视图级别高达6-7。处理得当,这绝不是问题。
您正在关注的当前策略可能存在其他一些问题,但您可以使用导航视图来查看差异,并且强烈建议您这样做。