Libgdx表setBackground什么都不做

时间:2017-06-23 06:27:33

标签: java libgdx

我制作.pack文件并将其加载到皮肤。我可以将它设置为Image类的drawable,它工作正常。但是Table.setBackground什么都不做。

Drawable background = skin.getDrawable("tooltip_background");
tooltipGroup.setBackground(background);

为什么这段代码不起作用?

完整代码:

tooltipGroup = new Table(skin);
                tooltipGroup.setWidth(w/6);
                Label.LabelStyle headerStyle = new Label.LabelStyle(headerFont, Color.GREEN);
                Label headerLabel = new Label(effect.getName(), headerStyle);
                headerLabel.setWidth(w/6);
                headerLabel.setX(20);
                headerLabel.setWrap(true);
                headerLabel.setAlignment(Align.topLeft);
                tooltipGroup.addActor(headerLabel);
                Label.LabelStyle style = new Label.LabelStyle(font, Color.WHITE);
                Label descriptionLabel = new Label(effect.getDescription(), style);
                descriptionLabel.setWidth(w/6);
                descriptionLabel.setWrap(true);
                descriptionLabel.setAlignment(Align.topLeft);
                descriptionLabel.setPosition(20, -descriptionLabel.getHeight());
                tooltipGroup.addActor(descriptionLabel);
                tooltipGroup.setPosition(mouseX, h - mouseY);
                Drawable background = skin.getDrawable("tooltip_background");
                tooltipGroup.setBackground(background);
                stage.addActor(tooltipGroup);

1 个答案:

答案 0 :(得分:0)

请勿在表格中使用addActor。要将Actors添加到表中,请使用add方法,并在链接方法中指定自定义参数(如填充或actor / width / height)。像这样,您可以控制如何将actor添加到表中,因为表格会自动进行布局。

Table rootTable = new Table();
rootTable.setFillParent(true);

TextField fieldFirst = new TextField("First", skin);
TextField fieldSecond = new TextField("Second", skin);

rootTable.add("First:");
rootTable.add(fieldFirst).width(100).row();
rootTable.add("Second:");
rootTable.add(fieldSecond).width(100);

stage.addActor(rootTable);

正如您所看到的,这允许您使用expand()和fill()方法在表中指定宽度,甚至可以让一个元素填充一行中的所有可用空间。使用表格的自动布局后,表格应具有适当的大小,并且应显示背景。有关如何使用libGdx表格布局的更多信息,请参见here