最近我发现了滚动面板,一直在尝试正确地实现它。
经过一番搜索,我找到了以下代码段:
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();
现在,这段代码大部分情况下都能很好地工作。事实上已经创建了滚动面板,我也可以动态地向其中添加文本。然而,我的问题是滚动面板的大小占据了整个屏幕,并且初始文本位于滚动面板的中央(即屏幕的中央),只有在添加足够的文本以填满整个屏幕高度后,才会开始滚动。
与其自行扩展,我实际上希望滚动面板仅占据屏幕底部的一个小区域。
我尝试设置表格和滚动面板的边界,但最接近的结果只是将滚动面板移动下来(意味着最后添加的文本不在屏幕上,无法显示)。它似乎完全忽略了任何设置的宽度或高度,而是自行扩展。
我想,我可以简单地在屏幕底部使用一组标签,并动态更改它们的文本,但那样就失去了滚动功能。因此,在我这样做之前,我希望能有人解答一下是否可以重新调整和设置滚动面板的边界。
table.add(scroller).height(200).expandX().fillX().bottom();
,并且不需要在表格上设置边界,直接使用table.setFillParent(true)
即可。 - Tenfour04