1

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();
});
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 に答える