簡體   English   中英

如何在Libgdx中不頂部填充的情況下啟動滾動窗格?

[英]How to start scrollpane without padding at top in Libgdx?

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

刪除setFillParent行。 滾動窗格中的表是一個老問題。

嘗試刪除scrollableTable.setFillParent(true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM