我'將內容添加到我的應用程序視這樣的:後退按鈕 - 通過視口
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