使用 colspan 时不考虑单元格宽度

Cell width not respected when using colspan

我试图在 LibGDX 的 table 中设置单元格宽度,但它忽略了我传递的值。我怀疑这是因为它在填充的行下并且具有 colspan 但我无法确切解释为什么会这样。

这是一个屏幕:

我希望播放按钮的单元格宽度更小,所以我编写了以下代码:

setDebug(true, true); //just mentionning, this is in the constructor of a class that extends Table, to prevent having table creation code on my screen

setWidth(400f);
setHeight(80f);

padLeft(30f);
padRight(30f);

Image image = new Image(assets.getTexture("gfx/menu/level-online.png")); //TODO icon depends on state
image.setScaling(Scaling.fill);

Button playButton = new TextButton(level.getType() == LevelType.RACE ? "Play" : "Visit", skin);
Button editButton = new TextButton("Edit", skin);

add(level.getName()).bottom().left().colspan(2).expand();
add(image).width(30f).height(30f);
row();
add(level.getOwner()).top().left().colspan(3).expand();
row();
add(playButton).width(40f).center(); //HERE
add(editButton).left().colspan(2); 

如您所见,播放按钮的单元格宽度本应为 40,但实际上要多得多。 (作为参考,云是 30 x 30)我该如何解决这个问题?

在我的最后一行使用 table 来分隔元素来修复它。感谢 Xoppa 和 Tenfour04 的帮助。

add(level.getName()).bottom().left().colspan(2).expand();
add(image).width(30f).height(30f);
row();
add(level.getOwner()).top().left().colspan(3).expand();
row();
Table buttons = new Table();

buttons.add(playButton).padRight(10f);
buttons.add(editButton);

add(buttons).expand().colspan(3).left();