我有以下课程,它将图像添加到按钮,然后将按钮添加到面板
private PushButton button;
private AbsolutePanel panel = new AbsolutePanel();
private Image image = new Image("images/rectangle_blue.png");
public ExpandingRectangularButton(String text)
{
String width = "120px";
String height = "160px";
image.setWidth(width);
image.setHeight(height);
button = new PushButton(image);
panel.add(button, 0, 0);
panel.setWidth(width);
panel.setHeight(height);
initWidget( panel );
}
当我显示ExpandingRectangularButton的实例时,按钮在底部被截断。但是,如果我将面板排除在以下等式之外
private PushButton button;
private Image image = new Image("images/rectangle_blue.png");
public ExpandingRectangularButton(String text)
{
String width = "120px";
String height = "160px";
image.setWidth(width);
image.setHeight(height);
button = new PushButton(image);
initWidget( button );
}
只需使用图像和按钮(即我在按钮上调用init()),然后图像将显示没有截断。由于我没有设置按钮的高度,我认为它会动态增长以容纳它的子窗口小部件。当我将按钮放在面板上时,为什么不会发生这种情况?
答案 0 :(得分:0)
引用Javadoc:
一个绝对的小组绝对会让所有孩子都站起来,让他们重叠。
请注意,此面板不会自动调整大小,以便为其绝对定位的孩子留出足够的空间。必须明确调整大小以便为它们腾出空间。
你可以:
AbsolutePanel
尺寸; overflow: hidden
属性(解决方法); panel.add(button, -1, -1)
静态定位按钮; AbsolutePanel
更改为自然适应其大小的Panel
(与几乎所有其他{{1}}一样)。我更喜欢最后一个,但你的用例并不清楚。