libgdx tablelayout错误调整大小

libgdx tablelayout错误调整大小,libgdx,tablelayout,Libgdx,Tablelayout,第一次调用更改屏幕按钮大小时,按钮大小设置正确。如果进一步更改屏幕大小,则按钮不成比例 // create ... table = new Table(); stage.add(table); table.setFillParent(true); playBtn = new TextButton("PLAY", this.btnStyle); linkBtn = new TextButton("LIKE", this.btnStyle); this.grid.add(this.playBtn).

第一次调用更改屏幕按钮大小时,按钮大小设置正确。如果进一步更改屏幕大小,则按钮不成比例

// create
...
table = new Table();
stage.add(table);
table.setFillParent(true);
playBtn = new TextButton("PLAY", this.btnStyle);
linkBtn = new TextButton("LIKE", this.btnStyle);
this.grid.add(this.playBtn).right();
this.grid.add(this.linkBtn).left();
...

// resize method
...
stage.getViewport().update(width, height, true);
table.invalidateHierarchy();

float btnWidth = this.windowWidth / 3;
float btnHeight = btnWidth / 2;
table.getCell(this.playBtn).width(btnWidth).height(btnHeight).padRight(btnWidth / 6);
table.getCell(this.linkBtn).width(btnWidth).height(btnHeight).padLeft(btnHeight / 6);
...
结果:

调整大小后:

我试图在你改变屏幕大小时创建一个屏幕

// resize method
...
if (resized) {
   this.game.setScreen(new MainMenu(this.game));
   return;
}
this.resized = true;
stage.getViewport().update(width, height, true);
table.invalidateHierarchy();

float btnWidth = this.windowWidth / 3;
float btnHeight = btnWidth / 2;
table.getCell(this.playBtn).width(btnWidth).height(btnHeight).padRight(btnWidth / 6);
table.getCell(this.linkBtn).width(btnWidth).height(btnHeight).padLeft(btnHeight / 6);
...
结果:


我怎样才能在不使用黑客的情况下实现我想要的行为?

使用黑客怎么样?谢谢,这就是我想要的