使用 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();
我试图在 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();