LibGDX按钮组滚动窗格

时间:2016-12-30 17:58:19

标签: libgdx scrollpane buttongroup

我正在尝试创建自己的平铺地图创建器,因此我需要一些用户可以在纹理之间进行选择的面板。我想在我的相机视图中创建滚动条。它完美地移动,一切都在使用字符串列表,但是如果我想将字符串更改为buttonGroup,它只显示在我的滚动窗格“com.badlogic.gdx.scenes.scene2d.ui.ButtonGroup@5dcff25d”中没有其他任何一行只有这一行。这是我的代码:

private void initPanel(){
    skin=new Skin(Gdx.files.internal("uiskin.json"));

    background = new Group();
    background.setBounds(0, CAM_HEIGHT-PANEL_SIZE, PANEL_SIZE, PANEL_SIZE);

    stage=new Stage(new ScreenViewport());
    list=new List<ButtonGroup>(skin);

    buttons=new TextButton[TEXTURE_NUMBER];
    buttons[0]=new TextButton("Delete",skin);
    buttons[1]=new TextButton("Red",skin);
    buttons[2]=new TextButton("Blue",skin);
    buttons[3]=new TextButton("Green",skin);

    buttonGroup=new ButtonGroup<TextButton>(buttons);
    buttonGroup.setMaxCheckCount(1);
    buttonGroup.setMinCheckCount(0);
    list.setItems(buttonGroup);

    scrollPane=new ScrollPane(list);
    scrollPane.setBounds(0, 0, PANEL_SIZE, PANEL_SIZE);
    scrollPane.setPosition(0,CAM_HEIGHT-PANEL_SIZE);
    scrollPane.setTransform(true);

    stage.addActor(background);
    stage.addActor(scrollPane);
    background.addActor(new Image(new Texture("textures/panel_background.png")));
    Gdx.input.setInputProcessor(stage);
}

1 个答案:

答案 0 :(得分:0)

每当您看到com.badlogic.gdx.scenes.scene2d.ui.ButtonGroup@5dcff25dpackage.class@hexstring之类的内容时,就意味着有人试图通过调用Object#toString()将对象转换为字符串。

在这种情况下,罪魁祸首是List class - 它旨在获取一堆对象并将其显示为文本。 ButtonGroup旨在按逻辑关联按钮,而不是将其放置在屏幕上,因此您需要创建ButtonGroup a Table。将按钮添加到两者,然后将表放入ScrollPane

我当然假设您需要ButtonGroup功能来管理按钮。如果按钮彼此独立,则可以完全跳过ButtonGroup,只需将按钮添加到表中即可。