繁体   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