gpt4 book ai didi

Libgdx 你能设置一个 ScrollPane 的边界吗?

转载 作者:行者123 更新时间:2023-12-01 14:36:05 24 4
gpt4 key购买 nike

所以最近我发现了 Scrollpanes 并一直在尝试正确实现一个。

经过一番搜索,我找到了这段代码

public void create() {
batch = new SpriteBatch();
skin = new Skin(Gdx.files.internal("data/uiskin.json"));
stage = new Stage();

gamelog = new Label("Start", skin);
gamelog.setAlignment(Align.center);
gamelog.setWrap(true);

Table scrollTable = new Table();
scrollTable.add(gamelog);
scrollTable.row();

scroller = new ScrollPane(scrollTable);


Table table = new Table();
table.setFillParent(true);
table.add(scroller).fill().expand();

现在大多数情况下,这段代码运行良好。实际上创建了一个滚动 Pane ,我可以动态地向其中添加文本。然而,我的问题是滚动 Pane 的大小占据了整个屏幕,并且初始文本位于滚动 Pane 的中间(因此在屏幕中间)并且只有在添加了足够的文本以占据整个屏幕的高度。

我真正想要的是滚动 Pane 仅占据屏幕底部的一小部分,而不是自行扩展。

我已经尝试设置表格和滚动 Pane 的边界,但我最近的只是向下移动滚动 Pane (意味着添加的最后一个文本不在屏幕上而不是在 View 中。如果它完全忽略任何宽度或高度设置,则为 s并自行扩展。

我想我可以通过简单地使用屏幕底部的一组标签并动态更改它们的文本来获得所需的效果,但是滚动功能将丢失。所以在我这样做之前,我希望有人可以阐明是否可以调整大小并设置滚动 Pane 的边界?

最佳答案

表格使用单元格来调整其组件的大小。当您将组件添加到表格时,它会返回包含该组件的表格单元格。然后您可以使用单元格来设置组件的大小。

在你的原始代码中试试这个:

table.add(scroller).size(460, 200);

如果您想在将滚动 Pane 添加到表格后更改它的大小,您可以从表格中获取单元格,然后像这样设置其大小:
table.add(scroller);
...
table.getCell(scroller).size(460, 200);

这是 Cell 的 API:

https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/Cell.html

关于Libgdx 你能设置一个 ScrollPane 的边界吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com