В 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;
}