代码之家  ›  专栏  ›  技术社区  ›  Sergey Stolyarov

extjs:窗口调整大小时自动调整窗体字段的大小

  •  5
  • Sergey Stolyarov  · 技术社区  · 15 年前

    我已经创建了包含一些ext.form字段的ext.window。但是当我调整窗口的大小时,窗体元素仍然有初始的宽度和高度。

    窗口调整大小时是否需要显式调整窗体字段的大小?或者有一些选项可以自动调整窗体域的大小?

    样例代码:

    var f_1 = new Ext.form.TextField({fieldLabel: 'Label 1'});
    var f_2 = new Ext.form.TextField({fieldLabel: 'Label 2'});
    var fp = new Ext.form.FormPanel({items: [f_1, f_2]});
    
    var w = new Ext.Window({
        layout: 'form',
        title: 'test',
        items: fp
    });
    
    w.show()
    
    3 回复  |  直到 15 年前
        1
  •  4
  •   Alan    15 年前

    您可以查看锚定,它可以很好地调整窗体的大小:

    http://www.extjs.com/deploy/dev/examples/form/anchoring.html

    请参见“组件”上的“锚定”属性:

    http://www.extjs.com/deploy/dev/docs/?class=Ext.Component

        2
  •  1
  •   RageZ    15 年前
    var f_1 = new Ext.form.TextField({fieldLabel: 'Label 1', anchor:'95%'});
    

    会的。你可以看到一些样品 there 以及文件 there .

    另外,如果不想为每个表单指定大小,可以使用 defaults 配置对象

    var fp = new Ext.form.FormPanel({
               items: [f_1, f_2]
               ,defaults: {
                   anchor: '95%' 
               }
            });
    
        3
  •  0
  •   richardtallent    15 年前

    我怀疑Formpanel“FP”部分有问题。

    在ExtJS中,通常最好在ext.window构造函数中声明窗口中的所有内容。对我来说,创造事物并试图在以后附加它们是很多挫折的根源。

    (好的,关于宽度的另一个答案是:100%可能更好。但是,我在调整大小等方面遇到了很多问题,当我不马上声明所有内容时…还没弄清楚什么时候可以。)