我使用以下代码创建一个带有ScrollPane的表。它在空的时候会正确呈现,但只要我在桌面上添加项目,它的高度就会降低一半左右。
// Init Stage & container table
stage = new Stage(new StretchViewport(Consts.SCREEN_WIDTH, Consts.SCREEN_HEIGHT));
Table container = new Table();
stage.addActor(container);
container.setFillParent(true);
// Init the scrollable table
final Table yourTurnMatches = new Table();
yourTurnMatches.background(Assets.getSolidColorDrawable(Color.GRAY));
final ScrollPane yourTurnMatchesScroll = new ScrollPane(yourTurnMatches);
yourTurnMatchesScroll.setScrollingDisabled(true, false);
yourTurnMatches.defaults().expand().space(4).top();
// Add the inner content to the container table
container.row().top().expandX().uniform();
Table matchTitles = new Table();
matchTitles.row().expandX().uniform().padTop(10).padBottom(10);
matchTitles.setBackground(Assets.getSolidColorDrawable(Color.DARK_GRAY));
matchTitles.add(txtYourTurn);
matchTitles.add(txtTheirTurn);
matchTitles.add(txtFinished);
container.add(matchTitles).colspan(3).fillX();
container.row().top().expand().uniform().spaceLeft(5).spaceRight(5);
container.add(yourTurnMatchesScroll).fill();
yourTurnMatches.row();
// Add button (this causes the Table height to go to about half of the original height)
Button btn = new Button(greenButtonStyle);
yourTurnMatches.add(btn).width(target.getWidth()*0.8f);
我正在使用LibGDX版本1.9.2。
任何可能导致表高度发生变化的想法?
感谢您的时间!
答案 0 :(得分:0)
问题解决了。似乎问题是由表标题行引起的:
container.row().top().expandX().uniform();
Table matchTitles = new Table();
matchTitles.row().expandX().uniform().padTop(10).padBottom(10);
matchTitles.setBackground(Assets.getSolidColorDrawable(Color.DARK_GRAY));
matchTitles.add(txtYourTurn);
matchTitles.add(txtTheirTurn);
matchTitles.add(txtFinished);
container.add(matchTitles).colspan(3).fillX();
标题行实际上占用了为表保留的空间的一半,但仅当后一行包含至少一个actor时。标题的fillX()没有使标题拉伸并填充整个高度,但它仍保留空间。
这对我来说似乎是非常奇怪的行为,我仍然希望听到这种情况发生的正当理由。
我的解决方案是重新设计整个屏幕并省略标题行,因为它不再需要。