当受限于BorderLayout中心区域时,窗口最大化问题

时间:2013-10-05 21:22:20

标签: extjs extjs4.1

我有一种情况,我想将窗口限制在BorderLayout的中心区域。这当然可以正常工作,但是,当我单击最大化按钮时,底部停靠的工具栏将被切断。如果我只是不限制窗口,那么这不会发生。我不确定我是否遗漏了一些明显的东西,或者这可能是一个错误。这是使用版本4.2.1。以下是演示此问题的简化测试代码:

<html>

  <head>

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <link rel="stylesheet" type="text/css"
      href="js/extjs/resources/css/ext-all.css">
    <script type="text/javascript" src="js/extjs/ext-all.js"></script>

    <script>

      Ext.onReady(function() {

        Ext.create("Ext.container.Viewport",
          { layout : "border",
            items: [
              { height : 60, region : "north", items: [ ] },
              { id : "regCenter", region : "center" }
            ]
          }
        );

        Ext.create("Ext.window.Window",
          { maximizable : true, width : 350, height : 440,
            constrainHeader : true, constrainTo : "regCenter",
            dockedItems : [
              { xtype : "toolbar", dock : "bottom",
                items : [ { text : "XXX" } ]
              }
            ],
            items : [ ]
          }
        ).show();

      });

    </script>

  </head>

  <body></body>

</html>

我已经将它缩小到与constrainTo和constrainHeader有关的事情......如果我删除其中一个或两个,那么最大化按预期工作,底部没有任何切断。

提前感谢任何建议, 弗兰克

1 个答案:

答案 0 :(得分:2)

而不是

constrainHeader : true, constrainTo : "regCenter",

把:

constrain : true, renderTo :'regCenter',

正如 constrainHeader 的文档所述,

constrainHeader:Boolean 如果为True,则限制其包含元素中的窗口标题(  允许窗体落在其包含元素之外

并且

约束:布尔

True以限制窗口在其包含元素内,false为允许它落在其包含元素之外。默认情况下,窗口将呈现给document.body。要在另一个元素中呈现和约束窗口,请指定 renderTo 。 “可选地,只能使用constrainHeader约束头部。”

希望这个解释对你有用。