在libgdx中,我的应用程序中有一个ScrollPane,我不知道如何在顶部没有额外空间的情况下滚动它。当前,窗格顶部有一个巨大的空间,当我向下滚动时,文本(高分)会慢慢填满该空间。
滚动之前:
滚动之后:
是否可以在没有空格的情况下开始(以便窗格完全填满),并且当我滚动时,我可以滚动浏览高分而不将它们向上移动?
我注意到我可以通过删除以下行来完成此操作。
table.setTransform(true);
但是,如果执行此操作,则无法缩放或设置表格的原点,因此文本显得太大。
下面是我的滚动窗格创建方法:
private void createScrollPane(ArrayList<String> scrollPaneScores) {
scrollPaneViewport = new FitViewport(800, 480);
stage = new Stage(scrollPaneViewport);
Skin skin = new Skin(Gdx.files.internal("skin/uiskin.json"));
Table scrollableTable = new Table();
scrollableTable.setFillParent(true);
stage.addActor(scrollableTable);
Table table = new Table();
for (String score : scrollPaneScores) {
table.add(new TextButton(score, skin)).row();
}
table.pack();
table.setTransform(true);
//table.setTransform(true); //clipping enabled ... this setting makes scrolling not occur in uniform fashion
table.setOrigin(400, 0);
table.setScale(0.75f);
final ScrollPane scroll = new ScrollPane(table, skin);
//scrollableTable.add(scroll).expand().fill();
scrollableTable.add(scroll).maxHeight(300);
//stage.setDebugAll(true);
//When stage is created, set input processor to be a multiplexer to look at both screen and stage controls
inputMultiplexer.addProcessor(inputProcessorScreen);
inputMultiplexer.addProcessor(stage);
Gdx.input.setInputProcessor(inputMultiplexer);
scrollPaneCreated = true;
}
答案 0 :(得分:0)
删除setFillParent行。滚动窗格中的表是一个老问题。
答案 1 :(得分:0)
尝试删除scrollableTable.setFillParent(true);