如何在LibGdx中的表格顶部添加一行?
tableName.add(rowElement);
通过这种方式,它在表格的末尾添加了一行(底部)。我需要做相反的事情。
tableName.add(rowElement).align(Align.top); // didn't work
代码:
Table mainTable = new Table();
mainTable.center().top();
Table message = new Table(skin);
Label messageName = new Label("ImYourFather", skin);
message.add(messageName).row();
Label messageText= new Label("THIRD MeSSaGE", skin);
message.add(messageText).row();
mainTable.add(message).align(Align.top).row();
答案 0 :(得分:4)
简答:你不能在libgdx表中插入(直接)
然而,有一些解决方法。
根据libgdx documentation:
表格允许更改或删除单元格的小部件(通过设置它) 为null),但Table当前不允许插入单元格 中间或删除。要做到这一点,需要重建表:call clearChildren删除所有子节点和单元格,然后将它们全部添加到 表再次。
如果需要插入或移除单元格,可以使用VerticalGroup或HorizontalGroup。
因此,您无法在表格的顶部插入单元格。您需要从头开始完全重建表,或者按照建议使用VerticalGroup类。
第一个解决方案:每次要在顶部插入消息时重建表格。
第二个解决方案:使用垂直组
// Initialize
VerticalGroup v = new VerticalGroup();
v.addActor(new Label("First row", skin))
v.addActor(new Label("Second Row", skin))
v.pack();
myScene.addActor(v);
...
// Add to the 'top'
v.addActorAt(0, new Label("I'm at the first row", skin));
v.pack();
我没有测试过这段代码,但它应该可以帮助你理解它的要点
但是,通过这样做,请注意您将失去libgdx Table的部分功能。