Java 如何在表格中缩放水平组

Java 如何在表格中缩放水平组,java,user-interface,libgdx,scene2d,Java,User Interface,Libgdx,Scene2d,我有一个水平组,其中有两个文本按钮。现在我想把这些按钮缩小一半,因为它们太大了,但我还没有找到一个好方法,我尝试了一些东西,但不是我想要的 这是设置它的代码 weaponsButton = new TextButton("Weapons", buttonStyle); weaponsButton.getLabel().setColor(Color.BLACK); weaponsButton.pad(10f); statsButton = new TextButto

我有一个
水平组
,其中有两个文本按钮。现在我想把这些按钮缩小一半,因为它们太大了,但我还没有找到一个好方法,我尝试了一些东西,但不是我想要的

这是设置它的代码

    weaponsButton = new TextButton("Weapons", buttonStyle);
    weaponsButton.getLabel().setColor(Color.BLACK);
    weaponsButton.pad(10f);
    statsButton = new TextButton("Stats", buttonStyle);
    statsButton.getLabel().setColor(Color.BLACK);
    statsButton.pad(10f);

    hGroup = new HorizontalGroup();
    hGroup.addActor(weaponsButton);
    hGroup.addActor(statsButton);

    table = new Table();
    table.add(hGroup);

    table.setFillParent(true);
    table.debug();

    stage = new Stage();
    stage.addActor(table);
buttonStyle
只是一个
TextButtonStyle
,带有
NinePatchDrawable
BitmapFont
。当您绘制表格时,它如下所示:

添加
hGroup.setScale(0.5f)它看起来像这样:

现在,
hGroup
没有在中间对齐,
.Align(Align.center)
在添加hGroup时不做任何操作

在添加
hGroup
后调用
.width(float)
来缩小单元格似乎也没有什么用处,因为我不知道缩放后的
hGroup
的确切宽度,它只给出了未缩放的宽度,我发现得到宽度然后乘以缩放因子有点笨拙

即使我这么做了,看起来也不是我想要的

table.add(hGroup).width(hGroup.getPrefWidth()*0.5f).height(hGroup.getPrefHeight()*0.5f);
看起来像这样:

根据,水平组的宽度是其所有子项(您的按钮)的首选宽度之和。鉴于此,您有几个选择:

  • 在按钮演员上调用setWidth并给他们一个宽度
  • 跳过水平组,只需将按钮直接添加到表中即可:

    Table table = new Table();
    table.defaults().uniformX();
    table.add(weaponsButton);
    table.add(statsButton);
    
  • 根据,水平组的宽度是其所有子级(您的按钮)的首选宽度之和。鉴于此,您有几个选择:

  • 在按钮演员上调用setWidth并给他们一个宽度
  • 跳过水平组,只需将按钮直接添加到表中即可:

    Table table = new Table();
    table.defaults().uniformX();
    table.add(weaponsButton);
    table.add(statsButton);