GWT的布局令人费解

GWT的布局令人费解,gwt,layout,Gwt,Layout,我正在努力理解GWT布局面板的奇怪行为。我想知道GWT如何将布局逻辑转换为javascript和html。有时我们没有得到预期的布局。GWT编译器完成了一些隐蔽的工作。 GWT文档对如何在封面下进行布局不够清楚。 是否有一些好书或教程可以很好地解释GWT布局问题 谢谢。我不知道什么是好书或教程,但这里有一些可能有用的信息 首先,正如你可能知道的,FooPanel和傻瓜Outpanel之间有很大的区别。这是两组基于不同布局机制的不同面板。布局面板是一种新东西,似乎更适合硬编码大小的布局,谷歌波浪风

我正在努力理解GWT布局面板的奇怪行为。我想知道GWT如何将布局逻辑转换为javascript和html。有时我们没有得到预期的布局。GWT编译器完成了一些隐蔽的工作。 GWT文档对如何在封面下进行布局不够清楚。 是否有一些好书或教程可以很好地解释GWT布局问题


谢谢。

我不知道什么是好书或教程,但这里有一些可能有用的信息

首先,正如你可能知道的,FooPanel和傻瓜Outpanel之间有很大的区别。这是两组基于不同布局机制的不同面板。布局面板是一种新东西,似乎更适合硬编码大小的布局,谷歌波浪风格。较旧的FooPanel(VerticalPanel等)主要基于HTML表

FlowPanel-这只是将小部件作为单个DIV中的连续HTML元素输出。如文档所述:“使用默认HTML布局行为格式化其子小部件的面板”

DockLayoutPanel-查看代码表明,它会根据您在子项(北、东等)中指定的内容硬编码不同区域的大小

最后,我的经验使我放弃了所有布局面板系统的使用,在任何可能的地方只依赖HTML和CSS。这意味着主要使用HTMLPanel+UiBinder,有时使用FlowPanel,很少使用其他一些面板

试图理解布局面板系统并与之抗争以完成非“默认情况”的事情是浪费时间。我并不是说这是最好的方法,但如果没有它,我就无法得到我想要的控制——特别是对于应该自动垂直扩展的元素。如果您还没有,请从GWT文档中有关布局面板的内容中注意这一点:

上面描述的面板最适合用于定义应用程序的外部结构,即最不“文档化”的部分。对于那些HTML/CSS布局算法运行良好的部分,您应该继续使用基本的小部件和HTML结构。特别是,考虑使用UIPEDER模板直接在任何有意义的地方使用HTML。


@杰森:例如,当我将两个面板添加到水平面板时,我看到它们分别在东、西两个方向布置。如果我使用FlowPanel添加这两个面板,它们会相互堆叠。这些都是我经历过的GWTUI怪事。我想水平布置许多面板,并希望它们彼此在右侧对齐,而最后一个面板应填充所有剩余的可用水平空间。通过简单地将面板添加到父级水平面板,我无法获得预期的布局。我该如何整理我提到的这个例子?谢谢