我似乎无法理解如何在Ext GWT中进行适当的布局,以便正确响应调整大小。
我假设我可以声明性地指定布局,将我的组件放入其中,并让库来处理其余部分;我还没弄明白怎么样。我真正不想做的是为我的组件编写resize处理程序来计算和设置每个resize事件中子组件的大小。
我的应用程序应该填满整个浏览器窗口,并且包含许多选项卡。每个标签页应填充标签栏后面的剩余空间。实际上,这是我一直存在的问题。我在屏幕/组件的顶部或左侧有一些固定大小的控件(工具栏,文件夹栏等),剩下的控件应该占用剩余的可用空间。
我已经发现我应该使用Viewport作为我的顶级组件,而FitLayout可能应该考虑到某处。但是我使用什么样的调整大小的布局来为我的固定大小的控件分配一些空间(最好是它们的自然大小,所以我也不必另外指定)并让其他控件占用余数?
我正在构建自定义控件(作为现有控件的组合)作为LayoutContainer的子类是否正确?到目前为止,我一直在使用带有FlowLayout和固定大小子控件的LayoutContainers,虽然这在某种意义上有效,但它无法响应父容器调整大小,这对我来说似乎很重要。
我试图围绕图书馆希望我这样做的方式,但文档似乎很少。任何见解将不胜感激。
答案 0 :(得分:0)
所有你描述的声音对我来说都是正确的。将Viewport添加到RootPanel,创建自定义组件作为LayoutContainer等的子类。
如果使用GXT Composite而不是扩展LayoutContainer,则可能会遇到麻烦,因为容器可能无法解决自定义组件的功能,但LayoutContainer应该没问题。
您是如何添加工具栏等的?是否将它们添加到扩展的LayoutContainer中?如果是这样,您可能最好扩展LayoutContainers子类ContentPanel。 ContentPanel已经构建了适用于工具栏的适当位置,例如使用ContentPanel.setTopComponent(工具栏)。
答案 1 :(得分:0)
带RowData的RowLayout(双倍宽度,双倍高度)允许动态调整大小的布局。
小于或等于1的值被视为百分比。大于1的值被视为像素。您还可以使用-1来使用组件的计算高度。
我使用RowLayout创建具有TabPanel和其他组件的可调整大小的窗口。有时动态隐藏/显示组件会导致布局问题,因此您需要添加在父容器上调用layout()的侦听器。