0

我似乎无法理解如何在 Ext GWT 中正确布局以正确响应调整大小。

我假设我可以声明式地指定布局,将我的组件放入其中,然后让库来处理其余的事情;我只是还没弄清楚怎么做。我真正不想做的是为我的组件编写调整大小处理程序,以便在每次调整大小事件时计算和设置子组件的大小。

我的应用程序应该填满整个浏览器窗口,并由许多选项卡组成。每个标签页都应该填满标签栏之后的剩余空间。实际上,这是我一直遇到的问题。我在屏幕/组件(工具栏、文件夹栏等)的顶部或左侧有一些固定大小的控件,其余控件应占用剩余的可用空间。

我已经发现我应该使用 Viewport 作为我的顶级组件,并且可能 FitLayout 应该在某处考虑。但是我使用什么样的调整大小感知布局来为我的固定大小的控件分配一点空间(最好是它们的自然大小,所以我也不必指定它)并让其他控件占据其余部分?

我将自定义控件(作为现有控件的组合)构建为 LayoutContainer 的子类是否正确?到目前为止,我一直在使用带有 FlowLayout 和固定大小子控件的 LayoutContainers,虽然这在某种意义上有效,但它无法响应父容器的大小调整,这对我来说似乎很重要。

我正在努力思考图书馆希望我如何做到这一点,但文档似乎很少。任何见解将不胜感激。

4

2 回答 2

0

你描述的一切对我来说都是正确的。将 Viewport 添加到 RootPanel,将自定义组件创建为 LayoutContainer 的子类等。

如果您使用 GXT Composite 而不是扩展 LayoutContainer,您可能会遇到麻烦,因为容器可能无法确定您的自定义组件的功能,但 LayoutContainer 应该没问题。

您如何添加工具栏等。您是否将它们添加到扩展的 LayoutContainer 中?如果是这样,您最好扩展 LayoutContainers 子类 ContentPanel。ContentPanel 已内置适合工具栏的占位符,例如使用 ContentPanel.setTopComponent(toolbar)。

于 2010-03-12T16:02:17.407 回答
0

带有 RowData(double width, double height) 的 RowLayout 允许动态调整大小的布局。

小于或等于 1 的值被视为百分比。大于一的值被视为像素。您还可以使用 -1 来使用组件的计算高度。

我使用 RowLayout 创建具有 TabPanel 和其他组件的可调整大小的窗口。有时动态隐藏/显示组件会导致布局问题,因此您需要在父容器上添加调用 layout() 的侦听器。

于 2010-04-28T08:44:17.647 回答