0
我已經使用了Google搜索,但所有有用的文章都描述瞭如何處理NavigationView中的後退按鈕,但我只是使用下面的常見視圖。如何在沒有NavigationView的情況下在sencha touch應用程序中處理返回按鈕?
Ext.define('emall.view.MyPage', {
extend: 'Ext.Container',
alias: 'widget.mypage',
requires: [
'emall.view.topplus',
'Ext.TitleBar',
'Ext.Button',
'Ext.Toolbar'
],
我在現有的應用程序做了改變,所以我不能改變基礎架構。 所以我想知道如何處理後退按鈕?
我知道下面的方法可以捕獲後退按鈕的事件。(我加了下面的方法來app.js)
if (Ext.os.is('Android')) {
document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);
function onBackKeyDown(eve) {
eve.preventDefault();
//do something
alert('back button pressed');
history.back();
}
}
但我能在方法onBackKeyDown嗎?由於我點擊後退按鈕時會觸發此事件,無論我留在哪個頁面。所以我不能去Ext.Viewport.animateActiveItem('xxxx')之前的頁面,因爲我不知道我留下的當前頁面。
如果我能得到當前的頁面名稱,我可以像下面這樣處理它。
if(currentpage=='xxx')
Ext.Viewport.animateActiveItem('profile', {
type : 'slide',
direction:'left'
});
而是這種方法,你考慮過使用路由?如果您的每個組件都有不同的路由,瀏覽器將自動處理後退按鈕。 – JChap
切換到navigationview應該很容易(導航視圖是帶有卡片佈局的普通容器,以及一些用於彈出/推送視圖的方法),一旦擁有navview,您可以調用pop方法並完成操作。 –
可以使用停用事件將視圖的xtype寫入全局變量。從那裏你可以animateActiveItem – Dinkheller