我创建了一个非常简单的应用程序来测试带有 Sencha Touch 的原生 Android 应用程序。我有两个面板。在第一个面板中点击按钮时,必须打开第二个面板。在我的浏览器中效果很好,但是当我创建一个原生 Android 应用程序时,只显示初始视图。当我点击按钮时,不会显示第二个视图。
这是我的代码:
Ext.application({
views: [
'MyPanel',
'MyPanel1'
],
controllers: [
'MyController1'
],
name: 'MyApp',
launch: function() {
Ext.create('MyApp.view.MyPanel', {fullscreen: true});
} });
Ext.define('MyApp.view.MyPanel', {
extend: 'Ext.Panel',
alias: 'widget.mypanel',
config: {
items: [
{
xtype: 'button',
itemId: 'mybutton',
text: 'V1'
}
],
listeners: [
{
fn: 'onMybuttonTap',
event: 'tap',
delegate: '#mybutton'
}
]
},
onMybuttonTap: function(button, e, eOpts) {
this.fireEvent('getPan1');
}
});
Ext.define('MyApp.view.MyPanel1', {
extend: 'Ext.Panel',
alias: 'widget.mypanel1',
config: {
items: [
{
xtype: 'button',
itemId: 'mybutton1',
text: 'V2'
}
],
listeners: [
{
fn: 'onMybutton1Tap',
event: 'tap',
delegate: '#mybutton1'
}
]
},
onMybutton1Tap: function(button, e, eOpts) {
this.fireEvent('getPan');
}
});
Ext.define('MyApp.controller.override.MyController1', {
override: 'MyApp.controller.MyController1',
config: {
refs: {
myView: 'mypanel',
myView2: 'mypanel1'
},
control: {
myView: {
getPan1: 'getPan1'
},
myView2: {
getPan: 'getPan'
}
}
},
getPan1: function(){
var a = Ext.create('MyApp.view.MyPanel1', {fullscreen: true});
a.show();
},
getPan: function(){
var a = Ext.create('MyApp.view.MyPanel', {fullscreen: true});
a.show();
}
});
在我看来,在本机应用程序中,事件未在控制器中捕获。我究竟做错了什么?