我有一个使用"form"布局的面板,其中包含多个按钮。现在我想让这个面板能够根据窗口大小进行自动调整。我该如何实现这个功能呢?
谢谢。
Ext.EventManager.onWindowResize(function(w, h){
panel.doComponentLayout();
});
假设您有一个名为'panel'的面板,其中内置了一些自动调整大小的功能(例如height: "100%"
)。否则,窗口的新宽度和高度将传递到传递给onWindowResize()
的匿名函数中。
如@deniztt所述,您需要订阅Windows调整大小事件的EventManager类。
可以像这样:
Ext.EventManager.onWindowResize(function () {
var width = Ext.getBody().getViewSize().width - 160;
var height = Ext.getBody().getViewSize().height - 140;
panel.setSize(width, height);
});
panel是指您的面板的引用
您可以在这里了解更多信息。
您可以设置窗口的大小,并将子面板的autoHeight
和autoWidth
属性设置为true。另一种方法是捕获窗口的resize
事件,并根据新的大小值调整子面板的大小。
<div id="chart" style="overflow: hidden; position:absolute; width:100%; height:90%;"></div>
....
Ext.onReady(function() {
var renderDiv = Ext.get('chart_div');
var chart = Ext.create('Ext.chart.Chart', {
renderTo: renderDiv,
width: renderDiv.getWidth(),
height: renderDiv.getHeight() - 50,
...
});
Ext.EventManager.onWindowResize(function () {
var height = renderDiv.getHeight() -50;
var width = renderDiv.getWidth();
chart.setSize(width, height);
});
});
autoWidth 和 autoHeight 在我的情况下似乎无法正常工作(Ext-JS 4.2.1)。
window.setSize(w, h)
- avnExt.GlobalEvents.on('resize', function(w, h) { ... });
- ccallendar