我制作.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);
答案 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。