Android Sencha Touch 2.3(';设置菜单';)中的非画布菜单不';我不能在安卓2.3上工作
我已经实现了新的菜单组件。它在安卓4.x、iOS6和iOS7上运行良好,但在安卓2.3上(既不在设备上也不在模拟器上)运行不正常。我遵循了的示例代码 有人在安卓2.3上实现了这一点吗? 我收集了一个小样本,这是它在Chrome、Android 4.x、iOS6和iOS7上的外观: 这是安卓2.3点击“showMenu”后的外观: 以下是我添加菜单的方式:Android Sencha Touch 2.3(';设置菜单';)中的非画布菜单不';我不能在安卓2.3上工作,android,extjs,menu,sencha-touch-2,android-2.3-gingerbread,Android,Extjs,Menu,Sencha Touch 2,Android 2.3 Gingerbread,我已经实现了新的菜单组件。它在安卓4.x、iOS6和iOS7上运行良好,但在安卓2.3上(既不在设备上也不在模拟器上)运行不正常。我遵循了的示例代码 有人在安卓2.3上实现了这一点吗? 我收集了一个小样本,这是它在Chrome、Android 4.x、iOS6和iOS7上的外观: 这是安卓2.3点击“showMenu”后的外观: 以下是我添加菜单的方式: initialize: function() { var menu = Ext.create('MenuTest.view.Men
initialize: function() {
var menu = Ext.create('MenuTest.view.MenuView');
Ext.Viewport.setMenu(menu, {
side: 'right',
cover: false
});
this. add({
xtype: 'button',
text: 'showMenu',
listeners: {
tap: function(button, e, eOpts) {
Ext.Viewport.toggleMenu('right');
}
}
})
}
我的菜单视图只有一个标签:
config: {
items: [
{
xtype: 'label',
html: 'Test Menu'
}
]
}
是否有人在Android 2.3上使用了此功能?触摸src默认视口中的设置菜单中似乎有一个bug。。。我们的解决方案:
// if (menu.$reveal) { // original
if (Ext.os.is.Android && Ext.os.version.lt('3') || menu.$reveal) { // fixed
Ext.getBody().insertFirst(menu.element);
// Bugfix: inner buttons of slider overlap original container while sliding - change z-index
Ext.get('ext-viewport').setStyle('z-index', '1');
}
// if (menu.$reveal) { // original
if (Ext.os.is.Android && Ext.os.version.lt('3') || menu.$reveal) { // fixed
if (Ext.browser.getPreferredTranslationMethod() != 'scrollposition') {
menu.translate(0, 0);
}
}
下面是一个基于您的答案的简短片段,您可以将其放在
launch()
函数的顶部(或与其他ST修复程序一起):
// Bugfix for Off-Canvas menu in Android 2.3
Ext.viewport.Android.override({
showMenu: function (side) {
if (Ext.os.version.lt('3')) {
Ext.get('ext-viewport').setStyle('z-index', '1');
this.getMenus()[side].$reveal = true;
}
this.callOverridden([side]);
}
});