GWT中的垂直面板和文档布局面板
我的布局结构如图所示 图片简介:HTMLPanel是根面板和两个垂直面板,一个标题和另一个内容面板。第二个垂直面板具有DockLayoutPanel。GWT中的垂直面板和文档布局面板,gwt,panel,Gwt,Panel,我的布局结构如图所示 图片简介:HTMLPanel是根面板和两个垂直面板,一个标题和另一个内容面板。第二个垂直面板具有DockLayoutPanel。 现在我的问题是,当我运行项目时,我的DockLayout没有显示出来 主页代码 <g:HTMLPanel> <g:VerticalPanel ui:field="contentPane" ></g:VerticalPanel> <g:VerticalPanel ui:field="he
现在我的问题是,当我运行项目时,我的DockLayout没有显示出来
主页代码
<g:HTMLPanel>
<g:VerticalPanel ui:field="contentPane" ></g:VerticalPanel>
<g:VerticalPanel ui:field="headerPane" styleName="{style.upper-titlebar-container}" ></g:VerticalPanel>
</g:HTMLPanel>
内容面板的代码
<g:HTMLPanel>
<g:DockLayoutPanel unit='EM'>
<g:north size='4'>
<g:Label> Hello </g:Label>
</g:north>
<g:east size="7.0">
<g:HTMLPanel ui:field="EdgeBandingPane"></g:HTMLPanel>
</g:east>
<g:west size="5.8" >
<g:HTMLPanel ui:field="PartsPane"></g:HTMLPanel>
</g:west>
<g:center >
<g:HTMLPanel ui:field="PanelsPane"></g:HTMLPanel>
</g:center>
<g:south size="5">
<g:Label> Hello </g:Label>
</g:south>
</g:DockLayoutPanel>
</g:HTMLPanel>
你好
你好
Iam添加的小部件显示在输出中,但我的Dock面板不显示。
我不理解这个问题提前感谢GWT*布局面板嵌套在*面板(没有布局的面板)中时不会自动工作。这是因为不同的布局方法:
- 布局面板使用绝对CSS布局,其中大小必须由父元素给定
- “普通”面板随着内容的增长而增长
<g:HeaderPanel>
<g:VerticalPanel ui:field="headerPane"></g:VerticalPanel>
<g:SimpleLayoutPanel ui:field="contentPane"></g:SimpleLayoutPanel>
</g:HeaderPanel>
在我看来,应该删除内容DockLayoutPanel周围的额外HTMLPanel,以确保从外部正确设置大小:
<g:DockLayoutPanel unit='EM'>
<g:north size='4'>
<g:Label> Hello </g:Label>
</g:north>
<g:east size="7.0">
<g:HTMLPanel ui:field="EdgeBandingPane"></g:HTMLPanel>
</g:east>
<g:west size="5.8" >
<g:HTMLPanel ui:field="PartsPane"></g:HTMLPanel>
</g:west>
<g:center >
<g:HTMLPanel ui:field="PanelsPane"></g:HTMLPanel>
</g:center>
<g:south size="5">
<g:Label> Hello </g:Label>
</g:south>
</g:DockLayoutPanel>
你好
你好
编辑:HTMLPanel应该只对“手动”布局是必需的。不要使用它仅包装一个其他小部件/面板。GWT*布局面板嵌套在*面板(没有布局的面板)中时不会自动工作。这是因为不同的布局方法:
- 布局面板使用绝对CSS布局,其中大小必须由父元素给定
- “普通”面板随着内容的增长而增长
<g:HeaderPanel>
<g:VerticalPanel ui:field="headerPane"></g:VerticalPanel>
<g:SimpleLayoutPanel ui:field="contentPane"></g:SimpleLayoutPanel>
</g:HeaderPanel>
在我看来,应该删除内容DockLayoutPanel周围的额外HTMLPanel,以确保从外部正确设置大小:
<g:DockLayoutPanel unit='EM'>
<g:north size='4'>
<g:Label> Hello </g:Label>
</g:north>
<g:east size="7.0">
<g:HTMLPanel ui:field="EdgeBandingPane"></g:HTMLPanel>
</g:east>
<g:west size="5.8" >
<g:HTMLPanel ui:field="PartsPane"></g:HTMLPanel>
</g:west>
<g:center >
<g:HTMLPanel ui:field="PanelsPane"></g:HTMLPanel>
</g:center>
<g:south size="5">
<g:Label> Hello </g:Label>
</g:south>
</g:DockLayoutPanel>
你好
你好
编辑:HTMLPanel应该只对“手动”布局是必需的。不要使用它仅包装一个其他小部件/面板。感谢您的帮助,我已经清除了DockLayoutPanel周围的HTMLPanel,我可以在我的designer选项卡中看到布局,但在输出中看不到。只有我的标题(垂直布局)显示出来,没有找到我丢失的地方。我在上面发布的代码中有一个问题(我修复了它):“headerPane”必须是HeaderPanel的第一个子元素,contentPane必须是第二个子元素。我希望这能解决问题。问题不在于顺序,可能是因为我的演示者。调试项目时,“HeaderPane”ParentPresenter为“HomePresenter”,但“contentPane”ParentPresenter为空。在我的演示文稿中添加它时,我遗漏了一些地方。你知道我在哪里失踪吗。我使用过GWTP。我不太了解GWTP,因为我们总是使用GWT当前版本中包含的活动/场所框架。这条规则很少有例外。HeaderPanel就是其中之一。HeaderPanel是一种混合小部件(不是真正的布局面板)。它希望页眉和页脚内容根据其内容具有“自然”大小。根据页眉和页脚的大小,内容设置为固定大小。因此,对于内容小部件,它的行为类似于*LayoutPanel。感谢您的帮助,我已经清除了DockLayoutPanel周围的HTMLPanel,我可以在我的designer选项卡中看到布局,但在输出中看不到。只有我的标题(垂直布局)显示出来,没有找到我丢失的地方。我在上面发布的代码中有一个问题(我修复了它):“headerPane”必须是HeaderPanel的第一个子元素,contentPane必须是第二个子元素。我希望这能解决问题。问题不在于顺序,可能是因为我的演示者。调试项目时,“HeaderPane”ParentPresenter为“HomePresenter”,但“contentPane”ParentPresenter为空。在我的演示文稿中添加它时,我遗漏了一些地方。你知道我在哪里失踪吗。我使用过GWTP。我不太了解GWTP,因为我们总是使用GWT当前版本中包含的活动/场所框架。这条规则很少有例外。HeaderPanel就是其中之一。HeaderPanel是一种混合小部件(不是真正的布局面板)。它希望页眉和页脚内容根据其内容具有“自然”大小。根据页眉和页脚的大小,内容设置为固定大小。因此,对于内容小部件,它的行为类似于*LayoutPanel。