我试图在ExtJS FormPanel中使用锚点参数。 FormPanel在一个窗口内,我希望当窗口被调整大小时,textfields和textarea也会被调整大小。理想情况下直到5个像素到右边距。作为最后一个元素的textarea应该占据所有剩余的垂直空间(减去5个像素)。extjs:锚点在FormPanel中被忽略
我使用宽度:'94%'取得了一些成功,但我想使用锚点,因为它似乎是一个更精确的位置。
这里是我的尝试:
var formItems = [
{
fieldLabel: 'To',
allowBlank: false,
anchor: '-5'
},
{
fieldLabel: 'Subject',
allowBlank: false,
anchor: '-5'
},
{
fieldLabel: 'Message',
xtype: 'textarea',
allowBlank: false,
anchor: '-5 -5'
}
];
var form = new Ext.form.FormPanel({
frame: true,
labelWidth: 55,
defaultType: 'textfield',
items: formItems
});
var win = new Ext.Window({
title: 'Testing',
width: 600,
height: 300,
items: form
});
win.show();
我怀疑的解决办法是使用AnchorLayout的FormPanel中,但我不知道。
UPDATE:这是我的测试。
http://doc.obliquid.com/dev/formLayout/test1.html 使用百分比宽度和高度,调整工程确定水平,但不垂直工作。
http://doc.obliquid.com/dev/formLayout/test2.html 是@owlness完全独立的建议。它主要工作,除了一个错误:文本区实际上是从窗口。要看到这个,只需在textarea内输入,直到滚动条出现,你会看到它离开窗口。
http://doc.obliquid.com/dev/formLayout/test3.html 是我在我的应用程序中因为style.css样式表而尝试了@owlness的建议时出现的。
http://doc.obliquid.com/dev/formLayout/test4.html 相同test3.html而不形式{显示:内联}样式。它越来越好。
http://doc.obliquid.com/dev/formLayout/test5.html 相同test4.html而不标签{余量右:20像素;}和输入{边距:7px的;}和相同test2.html现在。
现在的问题是如何使textarea停留在窗口中,更好的底部边距。
UPDATE 2:我通过改变锚设置textarea的作为锚解决textarea的问题: '100%-51'。我通过试错找到了数字-51,大约是前两个字段的高度。我不是很高兴有一个神奇的数字,但它的工作原理。如果有人知道更好的解决方案...
感谢您的建议。我在窗口中尝试**布局:'fit'**,但似乎表单没有调整大小。另外**主播:'100%'**不起作用,文本框仍然很小。注:我在文档中阅读:FormPanel配置了layout:'form'来使用** Ext.layout.FormLayout **布局管理器。 – stivlo 2011-05-09 13:08:56
@stivlo猫头鹰的例子很好。证明 - http://gyazo.com/3305a8142f319e8da6209f7caa215eae.png。你正在使用哪个版本的ExtJS? – Skay 2011-05-09 13:34:59
谢谢Skay,有趣......它不适用于我的应用程序。现在我尝试了一下,看看它是否发生了变化。我正在使用ExtJS v 3.3.1 – stivlo 2011-05-09 14:34:54