2014-10-07 3 views
1

Я совершенно новым для libGDX и пытаюсь реализовать макет, показанный на рисунке ниже, используя table layoutLibx GDX SCROLLABLE с закругленной накладкой

The контейнеру таблицу [Зеленый] состоит из таблицы заголовка [Синий] и ScrollPane корпус [черные предметы]. тело также представляет собой таблицу с различными рядами.

Я пытаюсь иметь тела части прокручивать «в разделе» заголовка. В начале все предметы от корпус должен быть виден с надлежащим заполнением.

код до сих пор:

ScrollPane body = new ScrollPane(bodyTable); 
header.add(headerBar).expandX().fillX();  
container.add(header).top().expandX().fillX().row(); 
container.add(body).fill().expand(); 

[обратите внимание, что требуемая текстура не включены в пропущено].

Она позволяет прокручивать правильно, но есть это как горизонтальный разрез заголовка и тела, в то время как я хотел бы иметь как эффект круглее. Интересно, можно ли использовать таблицы? Есть ли какой-нибудь пример/предложение, которое может указать мне в правильном направлении?

enter image description here:

+0

Мне кажется, вам нужны две таблицы для сиблинга, которые заполняют родительский, один для заголовка и один для тела. Положите достаточно простыни в верхней части таблицы тела, чтобы ваша первая строка была видна под заголовком. – Tenfour04

ответ

0

После немного мне удалось получить рабочую версию.

В Scene2d есть Stack widget, который представляет собой дизайн, чтобы складывать один элемент поверх другого.

Обзор иерархии является:

Stack container = new Stack; 
// the container is using all the available space 
container.setFillParent(true); 
container.add(body); 
container.add(head); 
stage.addActor(container); 

Хитрость заключается в определении правильного положения элементов внутри как головки и тела.

Так что для головы в моей реализации у меня есть что-то вроде:

Table header = new Table(); 
Table header_container = new Table(skin); 

// assign a background behind the header contents 
Drawable tableBackground = skin.getDrawable("top_bg"); 

//some position tweaks to resize the background to the wanted height 
tableBackground.setMinHeight(10); 
tableBackground.setBottomHeight(30); 
tableBackground.setTopHeight(10); 
header_container.setBackground(tableBackground); 

// headerBar is another table that contains the buttons that are in the header 
header.add(headerBar).expandX().fillX(); 
header_container.add(header).expandX().fillX(); 
head.addActor(header_container); 

тело является ScollPane, который содержит таблицу. Внутренняя таблица имеет верхнее заполнение, определенное так, что оно полностью видимо при запуске. При прокрутке он проходит под заголовком и немного скрывается.

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

0

Я хотел бы помочь, но мой паху трудно понять меня хорошо, вы хотите его в таблице, например, заголовок остается на месте, в то время как другие кнопки перемещения, например.

http://i.stack.imgur.com/C9cwR.png

1- добавить в окно таблицы и table.row();

2 добавить другое окно в таблицу и добавить скроллер.

не будет, если это то, что вы имели в виду.

+0

@dawez http://i.stack.imgur.com/C9cwR.png –

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