gpt4 book ai didi

java - GWT StackLayoutPanel : dynamic and automatic height

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:22 27 4
gpt4 key购买 nike

我正在使用 StackLayoutPanel 来显示 gmail 中的对话的堆叠电子邮件,其中 header 是发件人,子项是电子邮件的正文。对于它的动态特性,我只能在代码中估计堆栈的高度。为了估计 body 的高度,我可以得到客户窗口的宽度,然后粗略地猜测 body 占据了多少行。但这是费力的,而且很可能是错误的。

我的问题是:对于 GWT API 2.2,StackLayoutPanel 是否有办法知道并自动设置当前显示的子项(加上它的标题和其他标题)的显示高度?

恐怕不行,所以我尝试了其他方法,但都失败了。我试过:

  1. 将 StackLayoutPanel 放入 ScrollPanel 中:

    • 如果我不在代码中设置堆栈的大小,神秘的是我只能看到第一个堆栈的 header ,什么都没有,看不到它的主体,也看不到其他 header 。
    • 如果我设置了它,那么我就有了 body 高度估计的问题。
  2. 不在 ScrollPanel 内:堆栈会自动获得剩余窗口空间的大小,但是由于 header 太多,这些 header 会重叠并相互叠加。

此外,StackLayoutPanel 的默认行为似乎是在分配空间的末尾显示其余标题,而不仅仅是在之前的标题的子标题之后。这有可能改变吗?

在此方面的帮助将不胜感激。

//我知道一个类似的问题是this但我想我会对此进行扩展。

最佳答案

你是对的,你确实扩展了前一个问题,答案很简单:stackLayoutPanel.setHeight((40*numChildren + 200)+"px");

200 像素的正文大小取决于内容,因此 StackLayoutPanel 可能不会为您削减它。

我认为 StackLayoutPanel 的壁橱是使用固定的主体宽度并在主体内使用 ScrollPanel(不是 SP 内的 SLP)。这样所有邮件都可以在ScrollPanel中显示所有内容。

由于这是一种妥协,替代方案是只实现您自己的小部件。我可能会使用 VerticalPanel 作为底层小部件,只是隐藏和显示 div(同时保持标题始终可见)

关于java - GWT StackLayoutPanel : dynamic and automatic height,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5714544/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com