Libgdx制作列表和滚动条包装文本?

时间:2017-06-21 23:28:35

标签: java android libgdx

我想知道,无论如何都要创建一个ScrollPane和Lists,它们在LibGDX中水平包装文本。我希望滚动窗格能够垂直滚动,但要包装文本而不是水平滚动。

我知道我可以使用

禁用滚动的X方向
scrollPane.setScrollingDisabled(false, true);

但是无论如何要进行文本换行以便没有水平滚动而只会转到新行?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

public class ScrollPaneTest extends ApplicationAdapter {
    private Stage stage;
    private Table container;

    @Override
    public void create () {
        stage = new Stage();
        Skin skin = new Skin(Gdx.files.internal("skin/glassy-ui.json"));
        Gdx.input.setInputProcessor(stage);

        container = new Table();
        stage.addActor(container);
        container.setFillParent(true);

        Table table = new Table();

        final ScrollPane scroll = new ScrollPane(table, skin);
        scroll.setScrollingDisabled(true,false);

        table.pad(10).defaults().expandX().space(4);
        for (int i = 0; i < 100; i++) {
            table.row();

            Label label=new Label(i + ". Publish your games on Windows, Mac, Linux, Android, iOS, BlackBerry and HTML5, all with the same code base.", skin);
            label.setAlignment(Align.center);
            label.setWrap(true);
            table.add(label).width(Gdx.graphics.getWidth());
        }

        container.add(scroll).expand().fill();
    }

    @Override
    public void render () {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        stage.act(Gdx.graphics.getDeltaTime());
        stage.draw();
    }

    @Override
    public void resize (int width, int height) {
        stage.getViewport().update(width, height, true);
    }

    @Override
    public void dispose () {
        stage.dispose();
    }
}

输出是:

enter image description here

答案 1 :(得分:0)

您可以使用标签包装文本。然后将这些标签添加到滚动窗格中。