2014-11-05 77 views
0

我正在GWT中开发Web界面,当我部署它时,滚动不起作用。我的布局是一个包含VerticalPanel的RootLayoutPanel。这个VerticalPanel同时包含一个TabLayoutPanel和一个Horizo​​ntalPanel。在GWT中滚动

RootLayoutPanel rootLayout = RootLayoutPanel.get(); 
rootLayout.setStyleName("RootLayoutPanel"); 
rootLayout.add(mainVerticalPanel); 
RootPanel.get("main").add(rootLayout); 

而且,相对于CSS文件,它如下:

.RootPanel { 
    background: url(img/fondoAplicacion.png); 
    background-repeat: repeat; 
    margin: 0px; 
    overflow: scroll; 
} 

.RootLayoutPanel { 
    margin-top: 130px; 
    margin-left: 50px; 
    overflow: scroll; 
} 

有人能帮助我在使滚动?

+0

为什么不使用Scrollpannel(http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/ScrollPanel.html) – Stefan 2014-11-05 14:36:11

+0

使用ScrollPanel将解决您的问题 – JAVAC 2014-11-05 15:14:35

回答

2

GWT中有两种类型的面板。

大部分小部件(FlowPanel,HTMLPanel)从内部组件中获取它们的高度:添加到它们的小部件越多,这些小组所获得的小部件越多。

其他类型的面板实现了RequiresResize接口。这些面板从他们的父母身上取得他们的大小此组包括LayoutPanel,VerticalPanel,ScrollPanel等。

在您的示例中,将VerticalPanel添加到RootLayoutPanel时,无论VerticalPanel内部是什么,此VerticalPanel的高度都与RootLayoutPanel的高度完全相同。因此,它永远不会“溢出”Ro​​otLayoutPanel。

您需要决定您希望哪个面板能够“溢出”并作为结果滚动。您的案例中最合乎逻辑的方法似乎是在TabLayoutPanel的选项卡内添加ScrollPanel。每个ScrollPanel将包含一个FlowPanel或HTMLPanel - 这是您添加所有内容的地方。随着这些面板的内容增长,它将溢出相应的ScrollPanel,并出现滚动条。用户将能够在选项卡内滚动,而页面的其余部分将保持原样。