简体   繁体   中英

How to start scrollpane without padding at top in Libgdx?

In libgdx I have a ScrollPane in my application and I can't figure out how to get it to scroll without extra space at the top. Currently, there is a massive space at the top of the pane, and when I scroll down, the text (high scores) slowly fill up the space.

BEFORE SCROLLING:

scrollpane1

AFTER SCROLLING:

scrollpane2

Is it possible to start without the space (so the pane is completely filled) and when I scroll, I can scroll through the high scores without them moving upwards?

I noticed I can accomplish this by removing the following line.

table.setTransform(true);

But if I do this, I cannot scale or set origin on the table so the text appears too large.

Below is my scrollpane creation method:

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

Remove the setFillParent line. It is an old problem with tables inside scrollpanes.

尝试删除scrollableTable.setFillParent(true);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM