2014-02-05 163 views
0

标题栏类不会隐藏或显示,就像它在sencha文档中所说的那样。我正在初始化它像这样标题栏不会隐藏或显示

{ 
    xtype: 'titlebar', 
    docked: 'top', 
    hidden: true 
}; 

因此它开始隐藏。当我设置hidden: false时,它确实显示出来。我在一个按钮中引用它,当按下按钮时,它显示或隐藏。

bar.show()bar.hide()不起作用。 bar.setHidden(true)bar.setHidden(false)也没有。 bar.hidden = truebar.hidden = false也没有。我按钮中的事件处理程序确实有效,当它被按下时,它会打印一条消息。

让标题栏消失并重新出现的另一种方法是什么?

UPDATE

下面是我的对象和按钮听众的代码。这里是整个类文件的链接:http://pastebin.com/tbS35Czk

我settingsbar(这在其他类中定义在这里:http://pastebin.com/xP5NSrb8

var settingsbar = { 
       xtype: 'meterreadings_settingsbar', 
       docked: 'top', 
       added: false 
       }; 

这里是按钮和监听:

{ 
    xtype: 'mbButton', 
    text: 'Settings', 
    align: 'right', 
    listeners: { 
     tap: function(source, e, eOpts) { 
      if(!settingsbar.added){ 
       settingsbar.added = true; 
       Ext.ComponentQuery.query('.meterreadings_main')[0].add(settingsbar); 
      } 
      else{ 
       if(settingsbar.hidden){ 
        settingsbar.show(); 
       } 
       else{ 
        settingsbar.hide(); 
       } 

      } 
     } 
    } 
} 
+0

你能展示更多代码吗? 'show'和'hide'方法应该按照你的意愿工作:https://fiddle.sencha.com/#fiddle/3cb – Akatum

+0

@Akatum是的,我会在一分钟内更新我的问题。 – Graham

回答

0

解决了这个问题。而不是做

var settingsbar = { 
       xtype: 'meterreadings_settingsbar', 
       docked: 'top', 
       added: false 
       }; 

的,我需要做

var settingsbar = Ext.create('pw.meterreadings.main.settingsbar.Settingsbar',{ 
       docked: 'top', 
       added: false 
       }); 

不同的是我用Ext.create代替xtype