Extjs,如何在最大化窗口时忽略maxHeight?

时间:2013-09-25 17:57:55

标签: javascript extjs extjs4.2

Extjs 4.2,当窗口最大化时,我如何忽略maxHeight配置? 我想制作全屏窗口。

这是我在jsfiddle中的演示代码。

http://jsfiddle.net/zbyHY/

Ext.onReady(function() {
    Ext.create('Ext.window.Window',{
        title: 'Hello',
        maximizable: true,
        width: 400,
        height: 300,
        maxHeight: 350
    }).show();
});

1 个答案:

答案 0 :(得分:1)

准备好迎接重大黑客攻击?

function realMaximize(){
    if(this.maxInternal){
        return;
    }
    if(this.maximized){
        this.oldMaxHeight = this.maxHeight;
        this.maxHeight = undefined;
        this.maxInternal = true;
        this.restore();
        this.maximize();
        this.maxInternal = false;
    }else{
        this.maxHeight = this.oldMaxHeight;
    }
}

Ext.onReady(function() {
    var w = Ext.create('Ext.window.Window',{
        title: 'Hello',
        maximizable: true,
        width: 400,
        height: 300,
        maxHeight: 350
    });
    w.addListener('maximize',realMaximize);
    w.show();
});

啊!可怕。它有什么作用?当它检测到最大化时,它会存储当前的最大高度并将其删除。然后它切换最大化,以便UI更新以尊重这个新的最大值(也许有更好的方法?)。最后,它必须设置并检查一个标志,否则它将进入一个无限循环(maximize再次调用该函数)。

回到窗口并不是那么困难;记住的大小必须正常,因此我们不需要递归调用该函数。