首页 > 解决方案 > 强制修复 GridPane 中的间隙?

问题描述

我将 JavaFX 与 FXML 一起使用,我想以 1:1 的大小(正方形)显示一些图块。

在我的初始化方法(gluon javafx 移动应用程序)中,我使用下面的代码使我的图块成为二次方。

GridPane 具有 vgap 和 hgap 集。因此,如果下面的代码运行,瓷砖是正方形,但行之间的差距大于我设置的数字,因为 GridPane 现在大于需要,因为瓷砖在运行时缩小了。有没有办法以任何方式修复行之间的间隙大小或强制 GridPane 随着孩子的身高缩小?

我在 fxml 中尝试了很多关于间隙、对齐、percentWidth 等的东西......我希望任何人都可以帮助我:)

primary.getChildren().stream().filter(n -> n instanceof GridPane).forEach(g -> ((GridPane) g).getChildren().stream().filter(n -> n instanceof Button).forEach(b -> ((Button) b).maxHeightProperty().bind(((Button) b).widthProperty())));

标签: javajavafxlayoutfxmlgluon

解决方案


我自己找到了答案:

在网格窗格的末尾添加一个空行并设置此 RowConstraints:

<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" /> 
<RowConstraints vgrow="ALWAYS" />

推荐阅读