1

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

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

http://jsfiddle.net/zbyHY/

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

1 回答 1

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再次调用该函数)。

回到窗口并不难。记住的大小一定没问题,所以我们不需要递归调用函数。

于 2013-09-25T18:22:36.913 回答