我正在努力理解GWT布局面板的奇怪行为。我想知道GWT如何将布局逻辑转换为javascript和html。有时我们没有得到预期的布局。封面下的东西由GWT编译器完成。 关于如何在封面下执行布局,GWT文档还不够清晰。 是否有一些好的书籍或教程可以很好地解释GWT布局问题?
感谢。
答案 0 :(得分:6)
我不知道好书或教程,但这里有一些可能有用的信息。
首先,您可能知道FooPanels和FooLayoutPanels之间存在很大差异。这是基于不同布局机制的两组不同的面板。布局面板是新的东西,似乎更适合具有硬编码尺寸的布局,Google Wave风格。旧的FooPanels(VerticalPanel等)主要基于HTML表格。
FlowPanel - 这只是将您的小部件作为连续HTML元素输出到单个DIV中的东西。记录:“使用默认HTML布局行为格式化其子窗口小部件的面板”。
DockLayoutPanel - 查看代码显示它根据您在子项(北部,东部等)中指定的内容对不同区域的大小进行硬编码
最后 - 我的经验让我放弃了布局面板系统的所有用法,只依靠HTML和CSS,尽我所能。这意味着主要使用HTMLPanel + UiBinder,有时使用FlowPanel,很少也会使用其他一些面板。
尝试理解并与布局面板系统进行战斗,以做一些不是“默认情况”的事情是浪费时间。我不是说这是最好的事情,但是如果没有这个,我就无法获得我想要的那种控制 - 特别是关于应该自动垂直扩展的元素。如果您还没有,请从GWT文档中注意布局面板:
上述面板最适合用于定义应用程序的外部结构 - 即最少“类似文档”的部分。对于HTML / CSS布局算法运行良好的部分,您应该继续使用基本小部件和HTML结构。特别是,考虑使用UiBinder模板在任何有意义的地方直接使用HTML。