2016-09-05 5 views
0

Для создания таблицы с помощью ScrollPane я использую следующий код. Он корректно отображается, когда он пуст, но как только я добавляю элементы в таблицу, его высота уменьшается примерно на половину.LibGDX Изменение высоты стола после добавления актера

// 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

Проблема решена. Похоже, что проблема была вызвана в строке заголовка таблицы:

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(); 

Строка заголовок фактически взяла половину пространства, отведенное для таблицы, но только тогда, когда последняя строка содержала, по меньшей мере, один актер. FillX() для заголовка не делал заголовок растягиваться и заполнял всю высоту, но он все еще сохранял пространство.

Это кажется мне очень странным поведением, и я все равно хотел бы услышать правильную причину этого.

Моим решением было перепроектировать весь экран и оставить строку заголовка, потому что это больше не требуется.

Смежные вопросы