1

我需要在按钮单击时显示叠加层。为此,我编写了以下代码:-

 var miscButton = {
                xtype: 'button',
                iconCls: 'star',
                iconMask: true,
                width: 60,
                margin: '0 0 0 15',
                handler: function(){

                  fPanel.showBy(this);
                }
        };



       var fPanel = Ext.create('Ext.Panel',{
                    layout: 'vbox',
                    width: 150,
                    height: 300,
                    style: 'background-color: #5E99CC;',
                    items: [
                            {
                               xtype: 'list',
                               flex: 1,
                               itemTpl: '{item}',
                               data: [
                                          {item: 'item1'},
                                          {item: 'item2'},
                                          {item: 'item3'},
                                          {item: 'item4'},
                                          {item: 'item5'},
                                          {item: 'item6'},
                                          {item: 'item7'},
                                          {item: 'item8'},
                                          {item: 'item9'},
                                          {item: 'item10'},
                                          {item: 'item11'},
                                          {item: 'item12'},
                               ]                    
                            }
                    ]

        });

当我单击按钮时,它完美地显示了叠加层,但再次单击后它无法隐藏叠加层,如链接http://docs.sencha.com/touch/2-0/#!/example/中给出的那样覆盖

我不明白 showBy() 有什么问题。请帮我解决这个问题。

提前谢谢。

4

2 回答 2

1

要隐藏覆盖面板,只需拨打电话

fPanel.hide();

仅供参考,如果您希望能够在蒙版点击时隐藏面板,请使用面板的此属性,

modal: true,
hideOnMaskTap: true
于 2012-05-15T11:30:32.887 回答
0

这似乎是一个非常“丑陋”的解决方法,但它确实有效:

handler: function(){
  fPanel.setHidden(!fPanel.getHidden());
}

该片段中可能存在一些输入错误,但我的想法是切换面板的hidden属性

于 2012-05-15T11:48:27.630 回答