Sencha touch 2 双视图推送修复与动态加载视图断开
我正在使用ST2.2,并应用了一个修复程序,当用户点击按钮、列表项等两次时,会导致两个视图被按下。以下是修复方法:Sencha touch 2 双视图推送修复与动态加载视图断开,sencha-touch-2,push,Sencha Touch 2,Push,我正在使用ST2.2,并应用了一个修复程序,当用户点击按钮、列表项等两次时,会导致两个视图被按下。以下是修复方法: Ext.define('MyApp.view.NavView', { extend: 'Ext.navigation.View', push: function (view) { if(this.getActiveItem().xtype != view.xtype) this.callParent(arguments); e
Ext.define('MyApp.view.NavView', {
extend: 'Ext.navigation.View',
push: function (view) {
if(this.getActiveItem().xtype != view.xtype)
this.callParent(arguments);
else
console.warn("Prevented pushing a potentially duplicate view of xtype: " + view.xtype);
}
});
当我在app.js中声明了所有在发布时初始化的视图时,这非常有效。从那时起,为了提高性能和减少DOM大小,我将所有视图切换为动态加载。换句话说,app.js中的视图中只包含主视图。根据需要初始化和推送其他视图
上面的修复不再有效,我又回到了原来的问题
我还尝试将MyApp.view.NavView包含到app.js中的应用程序的requires:,但没有成功。您可以添加mutex on按钮以防止双击处理程序:
//somewhere in controller
tapNextButton: function(btn)
{
if (btn.mutex) return;
btn.mutex = true;
setTimeout(function() {btn.mutex = false;}, TAP_BUFFER_LONG);
// push new screen here
},
或者,您也可以在按钮定义中为点击侦听器使用“缓冲区”属性
或者覆盖:“Ext.event.recognizer.SingleTouch”整个项目