我正在寻找一个我想做的事情的例子,或者暗示如何去做。 我想从Sencha Touch 2的Viewport的一侧创建菜单,然后在此之后 用其他菜单替换此菜单。当我打电话
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Microsoft.Win32.SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
Microsoft.Win32.SystemEvents.DisplaySettingsChanging += SystemEvents_DisplaySettingsChanging;
Console.Read();
}
static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
Console.WriteLine("Display settings have been changed.");
}
static void SystemEvents_DisplaySettingsChanging(object sender, EventArgs e)
{
Console.WriteLine("Display settings are changing now...");
}
}
}
它工作正常但是在我用其他菜单调用setMenu之后,新的附加菜单取代了旧菜单,这就是主意。但是当我想要返回其他菜单时出现问题。有没有办法在某个地方保留旧菜单的实例?我只是不想再次重新创建上一个菜单。我试图用Container替换第二个菜单,但它不像菜单那么灵活。
答案 0 :(得分:1)
我无法重现你的问题。我写了一个小提琴并创建了3个菜单。我没有任何问题地显示和隐藏它们。我甚至可以使用Ext.Viewport.down()
选择一个菜单。
Sencha Fiddle的代码:
var menu1 = Ext.create('Ext.Menu', {
itemId: 'menu1',
items: [{
text: 'MenuItem 1',
iconCls: 'settings'
}]
});
var menu2 = Ext.create('Ext.Menu', {
itemId: 'menu2',
items: [{
text: 'MenuItem 2',
iconCls: 'compose'
}]
});
var menu3 = Ext.create('Ext.Menu', {
itemId: 'menu3',
items: [{
text: 'MenuItem 3',
iconCls: 'star'
}]
});
Ext.application({
name: 'Fiddle',
launch: function() {
var me = this,
menuus = new Array(menu1, menu2, menu3);
me.showMenu(menu1);
Ext.defer(function() {
me.showMenu(menu2);
}, 1000);
Ext.defer(function() {
me.showMenu(menu3);
}, 2000);
Ext.defer(function() {
me.showMenu(menu1);
}, 3000);
Ext.defer(function() {
var menuFromViewport = Ext.Viewport.down('#menu2');
me.showMenu(menuFromViewport);
}, 4000);
},
showMenu: function(menu) {
Ext.Viewport.hideMenu('left');
Ext.Viewport.setMenu(menu, {
side: 'left'
});
Ext.Viewport.showMenu('left');
}
});
答案 1 :(得分:0)
我来解决方法如何做到这一点。这是我的解决方案的例子:
isComplete(RepeatContext context, RepeatStatus result)