Я немного изменил ваш код, но вот что я придумал:
Ext.application({
name : 'TestApp',
requires: ['Ext.form.Panel', 'Ext.form.FieldSet'],
launch : function() {
var paneltest = Ext.create('Ext.Panel', {
fullscreen: true,
layout: 'vbox',
// layout: 'fit' // This shows the form, but overlaps all 3 panel items.
items : [
{
html : 'Fill in the form below',
flex: 1
},
{
xtype: 'formpanel',
flex: 1,
items : [
{
xtype : 'fieldset',
items : [{
xtype : 'textfield',
name : 'username',
label : 'Username'
}]
}
]
},
{
html : 'Fill in the form above',
flex: 1
}
]
});
Ext.Viewport.add(paneltest);
}
});
Моё основное изменение в вашем коде состояло в том, что я удалил
layout: {
type: 'vbox',
align: 'center'
}
иЯ изменил его на
layout: 'vbox'
Я также добавил flex к вашим элементам.Это правильный способ использовать макеты vbox и hbox.Я не совсем уверен, почему это работает, однако похоже, что 'center' - недопустимое значение, которое вы можете присвоить атрибуту align.Я думаю, что вы ищете «середину».И если это не дает того, что вы хотите, возможно, попробуйте добавить класс или идентификатор на вашу панель и управлять выравниванием с помощью css.Надеюсь, это поможет.