java - Scene2D UI 未填满整个屏幕

标签 java libgdx scene2d

在我当前正在处理的关卡选择屏幕中,我似乎无法使 Scene2D UI 表格填满整个屏幕。 我从代码中省略了一些位以减少长度,但以下是相关代码:

Stage stage = new Stage(new ScreenViewport());

table = new Table();
table.setFillParent(true);
innerTable = new Table();
//Omitted: Add a button to innerTable for each level

ScrollPaneStyle scrollPanelStyle = new ScrollPaneStyle();
scrollPanelStyle.vScrollKnob = new BaseDrawable();
scrollPane = new ScrollPane(innerTable);
scrollPane.setScrollingDisabled(true, false);
scrollPane.setupOverscroll(30f, 30f, 150f);

//Temporarily a restart icon 
Image backButton = new Image(backButtonTexture);
backButton.setScaling(Scaling.fit);
table.add(backButton).height(75f).width(75f).pad(20, 0, 20, 0).left();
table.row();
table.add(scrollPane);

目前看起来是这样的。该图标并不像我想象的那样位于当前代码的左侧。就我而言,它应该位于 X 轴上的 0 处。

Level selection screen

对于带有包含所有级别的 ScrollPane 的 innerTable 也是如此,它不会在 X 轴上填充整个屏幕,但看起来我想要它,所以这并不是真正的问题。

答案:expandX() 添加到我的 ScrollPane 最终实现了这一点,导致了这一行:table.add(scrollPane).expandX();。非常感谢 flogy。

最佳答案

我猜表格已正确拉伸(stretch)到您的视口(viewport),但还有一些其他配置错误。我建议使用 Debug模式来获取更多详细信息(请参阅 https://github.com/libgdx/libgdx/wiki/Table#debugging - 也可在后退按钮等上使用)。如果您无法自行使用此方法找到解决方案,请更新屏幕截图,以便我们进一步调查。谢谢。

最终解决方案(见评论):

 table.add(scrollPane).expandX();

表格已填满整个屏幕,但所包含的滚动面板并未填满。默认情况下,表格单元格会适应其内容。通过使用expandX,我们最终可以将包含滚动面板的单元格的宽度扩展到整个表格宽度。

关于java - Scene2D UI 未填满整个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32035017/

相关文章:

java - 按名称对已排序的 LinkedList 进行排序

java - 初始化对象的正确方法是什么?

java - libgdx 如何设置复选框和文本标签之间的间距

java - libgdx scene2d 添加多表

java - 调节系统音量的小程序

java - AudioInputStream.close() 未正确释放资源,有解决方法吗?

java - 在 Java 中实现这种线程/事件行为的最佳方式是什么?

java - LibGDX - TexturePacker2 不生成/打包图像

java - (libgdx/scene2d) 使用 Actor 等创建不同的舞台

Java/libGDX - Actions.fadeIn() 和 Actions.fadeOut() 的问题