我'将内容添加到我的应用程序视这样的:后退按钮 - 通过视口
Ext.Viewport.animateActiveItem(item, {transition})
我'寻找一种方式来获得“回”到最后一个视图。这是可能的,还是视口摧毁最后一个视图?
我'将内容添加到我的应用程序视这样的:后退按钮 - 通过视口
Ext.Viewport.animateActiveItem(item, {transition})
我'寻找一种方式来获得“回”到最后一个视图。这是可能的,还是视口摧毁最后一个视图?
是的,当然这很容易,这是我的第一个想法。问题在于保留最后一个视图的引用,因为我们正在用非常动态的方法构建应用程序,并且无法预测下一个视图的内容或最后一个视图的内容。我的希望是有一个简单的方法可以切换回最后一个视图。如果我用animateActiveItem()添加新内容会发生什么?它是否会破坏旧内容? – Marc 2012-08-14 19:05:00
然后,不要直接将它们添加到视口,只需使用卡片布局创建一个容器并将视图添加到此容器。然后,通过获取卡容器中的项目数(activeItem = container.getItems().length)获取活动索引,并通过调用container.setActiveItem(activeItem-1)激活最后一个视图,可以轻松切换到最后一个视图。 。或者您也可以使用旋转木马让您轻松转到下一个或上一个视图,或使用导航视图并隐藏标题栏(使用CSS) – 2012-08-14 19:49:04
我可以混合Tabpanel和旋转木马吗? – Marc 2012-08-15 10:27:57
为什么不直接使用内置的历史支持?您可以添加一个条目到历史记录对象,如下所示:
this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
url: 'dashboard'
}));
一旦您调用该函数,它将更改应用程序的URL哈希。你可以在你的控制器使用的路线抢事件......它添加到配置,像这样:
config: {
routes: {
'dashboard': 'showDashboard'
},
control: {
//controls...
}
},
煎茶触摸将识别URL变化,并期待你的路由调用一个函数像这样:
showDashboard: function() {
Ext.Viewport.animateActiveItem(item, {transition});
},
使用这种方法,本机背按键将带你回到以前的观点,你也可以调用的查看您想要去等...查看历史记录对象这里的文档:http://docs.sencha.com/touch/2-0/#!/api/Ext.app.History
嗯,这将需要在我们的XML一些额外的信息,因为我需要在某处定义路线。谢谢你的提示,我会考虑一下。 – Marc 2012-08-16 07:11:34
Ext.app.Action是一个私人Sencha因此不能保证在将来的版本中存在。更好的方式是更换...
this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
url: 'dashboard'
}));
这... ...
this.getApplication().redirectTo('dashboard');
您还可以通过Model对象只要它实现的toURL()方法...
this.getApplication().redirectTo(myModelObj);
如果需要,您现在可以使用以下返回:
history.back();
参考触摸历史的指南:
您应该使用[NavigationView(http://docs.sencha.com/touch/2-0/#!/api/ Ext.navigation.View) – 2012-08-14 12:27:49
不是一个好主意,因为这个控件非常不灵活(它总是创建一个标题栏?)。我们基于xml定义非常动态地创建了sencha-apps/guis,因此如果视图需要标题栏或者没有标题栏,它就不是“可预测”的。 – Marc 2012-08-14 12:41:12