Java 如果我将RootPanel更改为RootLayoutPanel,我的浏览器将忽略滑块。为什么?
当我有很多小部件时,一个页面就可以显示了,这是一种新的方式 在我的浏览器中不显示滑块。用“老”的方式 是的。为什么?我想在GWT布局类中使用“现代”方式(使用TabLayoutPanel),但现在不行 (My index.html以Java 如果我将RootPanel更改为RootLayoutPanel,我的浏览器将忽略滑块。为什么?,java,gwt,Java,Gwt,当我有很多小部件时,一个页面就可以显示了,这是一种新的方式 在我的浏览器中不显示滑块。用“老”的方式 是的。为什么?我想在GWT布局类中使用“现代”方式(使用TabLayoutPanel),但现在不行 (My index.html以开头) 编辑:如果我更改为 RootLayoutPanel.get().add( new ScrollPanel( widget) ); 它起作用了!我不知道这是否正确…它们是相互排斥的,RootPanel支持在浏览器级别自动调整大小和自动滚动条。例如,如果您将项目
开头)
编辑:如果我更改为
RootLayoutPanel.get().add( new ScrollPanel( widget) );
它起作用了!我不知道这是否正确…它们是相互排斥的,
RootPanel
支持在浏览器级别自动调整大小和自动滚动条。例如,如果您将项目放入一个表中,并添加足够的内容使其离开屏幕底部,RootPanel
将自动添加一个滚动条,以便您可以进入底部元素,RootLayoutPanel
将不会,除非您将该元素放在滚动面板
中,然后它与根面板
的功能不同
RootLayoutPanel
希望您手动控制所有这些。你可以选择其中一个,但不能同时选择两个。当使用RootLayoutPanel
通知Layout
部分何时重新布局时,必须将处理程序绑定到resize
事件
RootLayoutPanel
的目标是允许您创建更像桌面的基于web的应用程序。它不应该取代RootPanel
,除非它支持或不支持您尝试执行的操作,否则它不会更好或更差。我使用LayoutPanels和SimplePanel作为我的主布局(附加到RootLayoutPanel)。对于可能需要滚动条的面板,我只需添加样式:
.overflow {
overflow: auto;
}
下面给出了一个示例模板。我认为使用ScrollPanels而不是SimplePanels将是一种同样有效的方法,这取决于哪个最适合您的设计/需求。我更喜欢只在需要滚动条的地方使用滚动条,所以我使用overflow:auto
<ui:style>
.filterPanel {
padding: 10px;
background-color: #CCCCCC;
}
.overflow {
overflow: auto;
}
</ui:style>
<g:LayoutPanel styleName="ListLayoutPanel">
<g:layer left="0px" width="300px">
<g:SimplePanel ui:field="filterPanel" styleName="{style.filterPanel}" />
</g:layer>
<g:layer left="300px" right="500px">
<g:SimplePanel ui:field="tablePanel" styleName="{style.overflow}"></g:SimplePanel>
</g:layer>
<g:layer width="500px" right="0px">
<g:SimplePanel ui:field="detailPanel" styleName="{style.overflow}"/>
</g:layer>
</g:LayoutPanel>
</ui:UiBinder>
过滤板{
填充:10px;
背景色:#中交;
}
.溢出{
溢出:自动;
}
.overflow {
overflow: auto;
}
<ui:style>
.filterPanel {
padding: 10px;
background-color: #CCCCCC;
}
.overflow {
overflow: auto;
}
</ui:style>
<g:LayoutPanel styleName="ListLayoutPanel">
<g:layer left="0px" width="300px">
<g:SimplePanel ui:field="filterPanel" styleName="{style.filterPanel}" />
</g:layer>
<g:layer left="300px" right="500px">
<g:SimplePanel ui:field="tablePanel" styleName="{style.overflow}"></g:SimplePanel>
</g:layer>
<g:layer width="500px" right="0px">
<g:SimplePanel ui:field="detailPanel" styleName="{style.overflow}"/>
</g:layer>
</g:LayoutPanel>
</ui:UiBinder>