在GWT中可以嵌套基本面板吗?

<g:HTMLPanel>
     <g:HTMLPanel>
      .......
     </g:HTMLPanel>
  <g:ScrollPanel>
     <g:HTMLPanel>
      ........
     </g:HTMLPanel>
  </g:ScrollPanel>
</g:HTMLPanel>


我的问题是我需要滚动第二个HTML面板。我的UIBinder将在父HTMLPanel下包含两个子HTMLPanel。但我需要第二个htmlpanel可滚动。

最佳答案

GWT中有一些小组可以根据其父母的意见和/或为他们的孩子提供意见。例如,当您将HTMLPanel添加到RootPanel时,RootPanel会为此HTMLPanel提供其自己的大小(等于浏览器视图)。

但是,HTMLPanel不实现ProvidesResize()接口。因此,当您向其添加另一个HTMLPanel和ScrollPanel时,这些面板的初始高度为零。之后,这些小组将自己的孩子带到自己的高度。

这意味着您向ScrollPanel添加更多内容时将继续扩展,并且永远不会开始滚动。您有两个解决方案。

首先,您可以在ScrollPanel上设置高度(即height =“ 100px”)。

其次,您可以使用LayoutPanel而不是HTMLPanel作为视图的容器,然后将HTMLPanel和ScrollPanel添加到此LayoutPanel的不同层。每层为其子级提供大小。

在这两种情况下,您的ScrollPanel都将具有指定的高度(以像素,百分比,ems等为单位)。因此,一旦其子代的高度超过其自身的高度,它将开始滚动。

关于java - GWT中的基本面板嵌套,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24182964/

10-09 04:05