Java 像普通网页一样的整版GWT布局
我正在尝试使用GWT制作这样的布局。这真让我恼火,因为它看起来不像我想要的那样。总有一些东西重叠,隐藏,大或只是在一个错误的位置 我只想做这样的布局: 我为此工作了几个小时,但没有结果:( 布局应该填满整个浏览器,但没有滚动条! 标题应包含图像和标签 菜单是gwt中的菜单对象,内容正在更改,具体取决于单击的列表项Java 像普通网页一样的整版GWT布局,java,xml,gwt,layout,Java,Xml,Gwt,Layout,我正在尝试使用GWT制作这样的布局。这真让我恼火,因为它看起来不像我想要的那样。总有一些东西重叠,隐藏,大或只是在一个错误的位置 我只想做这样的布局: 我为此工作了几个小时,但没有结果:( 布局应该填满整个浏览器,但没有滚动条! 标题应包含图像和标签 菜单是gwt中的菜单对象,内容正在更改,具体取决于单击的列表项 请帮忙……根据个人经验,根据谷歌自己的建议,我建议调查一下 另外,我建议插入一些“溢出缓冲区”在您的面板之间。也就是说,您为最北端的面板分配了100px。将其大小缩小到96,在它和下
请帮忙……根据个人经验,根据谷歌自己的建议,我建议调查一下
另外,我建议插入一些“溢出缓冲区”在您的面板之间。也就是说,您为最北端的面板分配了100px。将其大小缩小到96,在它和下一个面板之间留出+/-2px的空间。这将允许不同计算机和浏览器之间的任何大小/布局错误得到一定程度的补偿-成本很低。使用UiBinder,您可以使用两个嵌套d DockLayoutPanel来实现这个布局。我自己还没有测试过,但是类似的东西应该可以工作(将DockLayoutPanel添加到RootLayoutPanel中 )
把标签和图片放在这里
菜单
主体
我刚刚测试了以下解决方案,它的外观和工作原理与您描述的完全相同。我使用了uiBinder,但不是必须使用它。ui xml代码是:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
.important {
font-weight: bold;
}
.header_bar{
position:absolute;
top:0px;
left:0px;
height: 100px;
right:0px;
background-color: red;
}
.left_bar{
position:absolute;
top:100px;
left:0px;
bottom:0px;
width: 130px;
background-color: green;
}
.menu_bar{
position:absolute;
top:100px;
left:130px;
height: 30px;
right:0px;
background-color: yellow;
}
.content{
position:absolute;
top:130px;
left:130px;
right: 0px;
bottom: 0px;
}
</ui:style>
<g:HTMLPanel>
<div class="{style.header_bar}">
<g:FlowPanel ui:field="headerPanel"></g:FlowPanel>
</div>
<div class="{style.left_bar}">
<g:FlowPanel ui:field="leftPanel"></g:FlowPanel>
</div>
<div class="{style.menu_bar}">
<g:FlowPanel ui:field="menuPanel"></g:FlowPanel>
</div>
<div class="{style.content}">
<g:FlowPanel ui:field="contentPanel"></g:FlowPanel>
</div>
</g:HTMLPanel>
.重要{
字体大小:粗体;
}
.标题栏{
位置:绝对位置;
顶部:0px;
左:0px;
高度:100px;
右:0px;
背景色:红色;
}
.左{
位置:绝对位置;
顶部:100px;
左:0px;
底部:0px;
宽度:130px;
背景颜色:绿色;
}
.菜单栏{
位置:绝对位置;
顶部:100px;
左:130像素;
高度:30px;
右:0px;
背景颜色:黄色;
}
.内容{
位置:绝对位置;
顶部:130像素;
左:130像素;
右:0px;
底部:0px;
}
java文件代码是:
public class TestLayout extends Composite {
private static TestLayoutUiBinder uiBinder = GWT
.create(TestLayoutUiBinder.class);
interface TestLayoutUiBinder extends UiBinder<Widget, TestLayout> {
}
public TestLayout() {
initWidget(uiBinder.createAndBindUi(this));
headerPanel.add(new Label("Head!"));
leftPanel.add(new Label("Left!"));
menuPanel.add(new Label("Menu!"));
contentPanel.add(new Label("Content!"));
}
@UiField
FlowPanel headerPanel;
@UiField
FlowPanel leftPanel;
@UiField
FlowPanel menuPanel;
@UiField
FlowPanel contentPanel;
}
公共类TestLayout扩展了复合{
专用静态TestLayoutUiBinder uiBinder=GWT
.create(TestLayoutUiBinder.class);
接口TestLayoutUiBinder扩展了UiBinder{
}
公共测试布局(){
initWidget(uiBinder.createAndBindUi(this));
添加(新标签(“Head!”);
添加(新标签(“左!”);
添加(新标签(“菜单”);
添加(新标签(“内容!”);
}
@尤菲尔德
FlowPanel头部面板;
@尤菲尔德
流程面板左面板;
@尤菲尔德
流程板菜单面板;
@尤菲尔德
FlowPanel内容面板;
}
我希望我能帮上忙。请公布您目前的情况,并准确地告诉我们哪些方面没有按计划进行。
public class TestLayout extends Composite {
private static TestLayoutUiBinder uiBinder = GWT
.create(TestLayoutUiBinder.class);
interface TestLayoutUiBinder extends UiBinder<Widget, TestLayout> {
}
public TestLayout() {
initWidget(uiBinder.createAndBindUi(this));
headerPanel.add(new Label("Head!"));
leftPanel.add(new Label("Left!"));
menuPanel.add(new Label("Menu!"));
contentPanel.add(new Label("Content!"));
}
@UiField
FlowPanel headerPanel;
@UiField
FlowPanel leftPanel;
@UiField
FlowPanel menuPanel;
@UiField
FlowPanel contentPanel;
}