如何扩展ExtJS(版本3.3.1)组件,例如一个Ext.Panel嵌套在文档层次结构中的某个地方以“全屏”,以便占据整个浏览器窗口区域?我想我需要动态创建一个Ext.Viewport并重新组合“扩展”,但目前为止我没有成功。有人可以提供一个工作样本吗?如何将ExtJS组件扩展为全屏并稍后恢复?
此外,我希望能够在稍后的某个时间点将组件恢复到原来的位置,如果这是可能的话。
我试过如下:
new Ext.Button({ text: 'Fullscreen', renderTo : Ext.getBody(), onClick: function(){
var viewPort = new Ext.Viewport({
renderTo: Ext.getBody(),
layout: "fit",
items: [ panelToBeExpanded ]
});
viewPort.doLayout();
}});
不很好地工作。单击该按钮后,面板panelToBeExpanded
似乎占据视区区域,但前提是BODY区域中没有HTML,否则viewport未完全展开。而且,之后使用重新安装的面板会在大多数浏览器中导致奇怪的闪烁。
是否有一种可靠的方法来通用(理想情况下是暂时)将组件扩展到整个浏览器窗口?
UPDATE
由于在评论中建议,创建一个新的最大化Ext.Window似乎是一个很好的解决方案。第二部分虽然有点棘手 - 一旦窗口关闭,如何将重新设置的组件移回原始位置在DOM(和ExtJS组件层次结构)中?
感谢您的帮助!
可能是你可以使用Ext.Window与方法最大化和恢复... – TheHorse 2011-05-24 18:01:38
谢谢,一些试验后,这似乎是要走的路。关于如何在窗口关闭后将重新设置的组件移回到原来的位置(和ExtJS组件层次结构)的任何想法? – 2011-05-24 19:57:51