如何使 Scene2d window 适合它的内容? ( Libgdx )

How to fit a Scene2d window to it's content ? ( Libgdx )

一切都在标题上,我尝试逐步按照 Nathan Sweet(Libgdx 主要贡献者)提供的示例在 Scene2d 中创建一个 window,但我想出了意想不到的结果:

就像你可以看到 window 的文字一样,这是我的 window 代码:

Window window = new Window("The new Window commIng up", skin_deff);
               window.setPosition(400, 200);    
               window.pack();


        // putting  stuff together

                table.debug();
                table.add(heading).colspan(3).expandX().spaceBottom(50).row();;
                table.add(scrollPane).uniformX().expandY().top().left();
                table.add(window).padLeft(30);
                // table.add(play).uniformX();
                table.add(back).uniformX().bottom().right().padLeft(550);
                stage.addActor(table);

这是我试图效仿的 Nathan Sweet 的例子:

代码:

label.setPosition(100, 200);
        stage.addActor(label);

        Window window = new Window("[RED]Multicolor Bla Bla Bla[GREEN] Title", skin);
        window.setPosition(400, 200);
        window.pack();
        stage.addActor(window);

我找到了解决方案,问题出在我的 table 布局中:

                table.debug();

                table.add(heading).colspan(3).expandX().spaceBottom(50).row();
                table.add(scrollPane).uniformX().expandY().top().left();
                table.add(window).top();
                // table.add(play).uniformX();
                table.add(back).uniformX().bottom().right();

                stage.addActor(table);

而不是

            table.debug();
            table.add(heading).colspan(3).expandX().spaceBottom(50).row();;
            table.add(scrollPane).uniformX().expandY().top().left();
            table.add(window).padLeft(30);
            // table.add(play).uniformX();
            table.add(back).uniformX().bottom().right().padLeft(550);
            stage.addActor(table);

应用于 windowpadLeft 和后退按钮强制文本与 window 重叠。

现在结果看起来好多了:) :