我是libGDX的新手,尝试使用table layout
实现下图所示的布局容器表[绿色]由表标题 [蓝色]和ScrollPane 正文 [黑色项目]组成。身体也是一个有各种行的桌子。
我正在尝试将正文部分滚动到"" 标题即可。在开始时, body 的所有项目都应该在适当的填充处可见。
到目前为止的代码:
ScrollPane body = new ScrollPane(bodyTable);
header.add(headerBar).expandX().fillX();
container.add(header).top().expandX().fillX().row();
container.add(body).fill().expand();
[请注意,剪切中不包含所需的纹理]。
它可以正确滚动,但有一个横向切割标题和正文,而我希望有一个更圆的效果。不知道这可以用桌子吗?是否有任何示例/建议可以指出我正确的方向?
:
答案 0 :(得分:0)
我想帮助,但我的腹股沟很难理解我,你想要它在一个表格中,例如标题仍然存在,而其他人移动按钮,例如。
http://i.stack.imgur.com/C9cwR.png
1-添加窗口到table和table.row();
2-将其他窗口添加到表格并添加滚动条。
如果那是你的意思,不会。
答案 1 :(得分: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);
棘手的部分是在 head 和 body 中定义元素的正确位置。
因此,对于我的实现中的 head ,我有类似的内容:
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。内部表定义了Top Padding,因此在开始时完全可见。滚动时,它会在标题部分下面隐藏一点。
它正在工作但感觉涉及太多的嵌套,如果我发现更清洁的解决方案将更新上面的代码。