package com.badlogic.gdx.scenes.scene2d.ui; import com.badlogic.gdx.json.annotations.JsonArray; import com.badlogic.gdx.json.annotations.JsonSerialize; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.utils.Array; public class GroupLayout extends ActorLayout<LayoutGroup> { @JsonSerialize(array = @JsonArray(value = ActorLayout.class)) public Array<ActorLayout<?>> actors; @JsonSerialize public String sizeToActor = null; public GroupLayout() { super(LayoutGroup.class); } @Override protected Actor create(Skin skin, StageLayoutListener listener) { Group group = (Group)super.create(skin, listener); for(int i=0; i<actors.size; i++){ ActorLayout layout = actors.get(i); group.addActor(layout.create(skin, listener)); } if(sizeToActor != null){ Actor actor = group.findActor(sizeToActor); if(actor != null){ group.setWidth(actor.getWidth()); group.setHeight(actor.getHeight()); } } else { if(layout.width > 0) group.setWidth(layout.width); if(layout.height > 0) group.setHeight(layout.height); } return group; } @Override protected LayoutGroup createActor(Skin skin, StageLayoutListener listener) { return new LayoutGroup(); } }