在我的代码中:我在Table();
(libGDX的堆栈)中创建了一个Stack();
包含许多按钮和标签。
table = new Table();
table.setFillParent(true);
Stack[][] stackTable = new Stack[LENGHT_TILE][LENGHT_TILE];
Label[][] lbl = new Label[LENGHT_TILE][LENGHT_TILE];
Button[][] btnSquares = new Button[LENGHT_TILE][LENGHT_TILE];
for (int row = 0; row < btnSquares.length; row++) {
for (int col = 0; col < btnSquares[0].length; col++) {
lbl[row][col] = new Label("" + array[row][col], style);
lbl[row][col].setAlignment(Align.center);
lbl[row][col].setTouchable(Touchable.disabled);
btnSquares[row][col] = new Button(new Image(texture).getDrawable());
stackTable[row][col] = new Stack();
stackTable[row][col].add(btnSquares[row][col]);
stackTable[row][col].add(lbl[row][col]);
table.add(stackTable[row][col]);
}
}
stage.addActor(table);
我无法修改这些按钮或标签的宽度,高度,大小和比例。为什么??
答案 0 :(得分:1)
我不明白你在这做什么。为什么需要将所有这些actor存储在多维数组中?我建议你开始小一些:
Table table = new Table();
Stack stack = new Stack();
TextButton frontButton = new TextButton("Front", skin);
TextButton backButton = new TextButton("Back", skin);
stack.add(backButton);
stack.add(frontButton);
//Now this should work fine
table.add(stack).height(...).expandX(...).fillX().row();
您是否将按钮存储在这些演员中供以后参考?如果你想制作瓷砖系统或光栅的somkind,那么Table完全能够在没有所有这些多维数组的情况下制作它。所以我不确定你要在这里完成什么,但它看起来不对或过于复杂如果Stack,Label和Button相关,我会为此制作一个容器类。
Class MyContainer()
{
Stack stack;
Label label;
Button button;
//Getters & setters
//...
public MyContainer(Stack stack, Label label, Button button)
{
this.stack = stack;
//...
}
}
现在,您可以将多个数组添加到容器中,并将其添加到列表中,而不是添加多维数组。您可以为此类中的actor添加侦听器,并且一切都很好并且包含在内。