Как запустить область прокрутки без заполнения сверху в Libgdx? - PullRequest
0 голосов
/ 26 января 2019

В libgdx у меня есть ScrollPane в моем приложении, и я не могу понять, как заставить его прокручиваться без дополнительного места сверху. В настоящее время в верхней части панели имеется большое пространство, и когда я прокручиваю вниз, текст (высокие баллы) медленно заполняет пространство.

ДО ПРОКРУТКИ:

scrollpane1

ПОСЛЕ ПРОКРУТКИ:

scrollpane2

Можно ли начать без пробела (чтобы панель была полностью заполнена), и когда я прокручиваю, я могу прокручивать рекорды, не поднимая их вверх?

Я заметил, что могу сделать это, убрав следующую строку.

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

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Попробуйте удалить scrollableTable.setFillParent (true);

0 голосов
/ 27 января 2019

Удалить строку setFillParent. Это старая проблема с таблицами внутри полос прокрутки.

...