【问题标题】:GWT DockLayoutPanel with browser determining size of some subpanels?GWT DockLayoutPanel 与浏览器确定某些子面板的大小?
【发布时间】:2012-01-02 16:39:01
【问题描述】:

看起来您必须指定除一个子面板以外的所有子面板的绝对大小。比如来自GWT docs

DockLayoutPanel p = new DockLayoutPanel(Unit.EM);
p.addNorth(new HTML("header"), 2);
p.addSouth(new HTML("footer"), 2);
p.addWest(new HTML("navigation"), 10);
p.add(new HTML(content));

但我想要由浏览器调整大小的北面板。我在里面放了一些文字或按钮,我不知道它的大小,我只知道它比较薄并且在页面的顶部。而且我希望内容占据其余空间,但不会更多,因此没有浏览器滚动条。有没有办法用这些较新的布局面板来处理这个问题?

现在我使用的是旧版面板,并且我有一个带有Window.addResizeHandler 的处理程序,它设置主要内容区域的高度,以便所有内容都适合Window.getClientHeight

更新:

Thomas 建议在 HeaderPanel 中使用 DockLayoutPanel,但这对我不起作用:

<g:HeaderPanel>
 <g:Label>Header top</g:Label>
 <g:DockLayoutPanel unit='PX'>
   <g:west size='300'>
     <g:Label>West</g:Label>
   </g:west>
   <g:center>
     <g:Label>Center</g:Label>
   </g:center>
 </g:DockLayoutPanel>
</g:HeaderPanel>

“标题顶部”在那里,其余部分不可见。看起来内部 div 的高度为 0。

【问题讨论】:

  • 嗨,你找到解决办法了吗?我正在尝试做同样的事情,我已经在这个问题上浪费了太多时间。干杯。
  • 我认为我必须使用调整大小处理程序并自己手动计算和调整大小。我已经放弃了 GWT。
  • 感谢您的更新。我希望我也能这样做:)
  • 作为一个有趣的问题,我可以问你是否转移到另一个框架,如果是,是哪个?总的来说,我觉得 GWT 很有用,但我觉得它有点笨拙,我很想看看另一个类似的工具包。
  • 我没有找到类似的工具包。最近,我正在学习使用 Angular。我对它太缺乏经验,无法推荐它,但到目前为止它看起来不错。我仍然希望看到类似 JVM 字节码到 js 编译器的东西。

标签: gwt layout


【解决方案1】:

您应该在HeaderPanel 中添加DockLayoutPanel(对于西部和中部地区,如果您不希望它使用其自然高度,也可能是南部地区)HeaderPanel(对于北部地区的自然尺寸

【讨论】:

  • 我将对此进行试验并在这里报告。 HeaderPanel 可以自己做我想做的事,但乍一看它没有实现ProvidesResize,我认为这意味着它不能包含DockLayoutPanel
  • 是的,它没有实现ProvidesResize,因为它不会调整其页眉和页脚小部件的大小;但如果它实现了RequiresResize,它会在其中心小部件上调用 setSize()。
  • 这行得通,谢谢。现在我需要将高度限制传播到该内容区域内的 ScrollPanel,但如果我无法弄清楚这将是一个不同的 SO 问题......
  • 糟糕,我说得太早了。 HeaderPanel 对我有帮助,但是在里面放一个 DockLayoutPanel 是行不通的。我更新了问题。
猜你喜欢
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多