Вам нужно будет сделать что-то подобное с вашим оверлеем ...
if (!this.popup) {
this.popup = new Ext.Panel({
hideOnMaskTap: false,
floating: true,
modal: true,
centered: true,
hideOnMaskTap: false,
width: 300,
height: 200,
styleHtmlContent: true,
scroll: 'vertical',
html: '<p>msg here</p>'
});
}
this.popup.show('pop');
Ключ здесь hideOnMaskTap: false
, это предотвратит исчезновение оверлея, когда вы нажмете в его маскированной области.
После этого вы можете отобразить свой лист действий, но не забудьте скрыть наложение в обработчике для кнопок действий, поскольку оно больше не исчезнет, когда вы нажмете в замаскированной области.
if (!this.actions) {
this.actions = new Ext.ActionSheet({
items: [{
text: 'decline',
ui: 'decline',
handler: function() {
this.doWhateverYouNeedToDo();
this.actions.hide();
this.popup.hide();
}
}, {
text: 'save',
handler: function() {
this.doWhateverYouNeedToDo();
this.actions.hide();
this.popup.hide();
}
}, {
text: 'cancel',
scope: this,
handler: function() {
this.doWhateverYouNeedToDo();
this.actions.hide();
this.popup.hide();
}
}]
});
}
this.actions.show();
обратите внимание на скрытие наложения в обработчиках листов .. (я не делаю этого выше, но вы, скорее всего, захотите уничтожить наложение и лист действий после того, как они будут скрыты, просто для того, чтобыдержать вещи в порядке)