java - 强制修复 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())));
解决方案
我自己找到了答案:
在网格窗格的末尾添加一个空行并设置此 RowConstraints:
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="ALWAYS" />
推荐阅读
- c# - 通过反射取消订阅或检查 CollectionChanged 事件
- python - Python use curl with subprocess, write outpute into file
- hibernate - 仅需要实体 id 时如何避免初始化 Hibernate 代理
- c# - QueueBackgroundWorkItem 与 Task.Run 用于后台任务
- jquery - ajax POST 响应为空
- java - 编写 ExecutorService 以更新 AtomicBoolean 值的方法
- javascript - 变量跟踪用户尝试不更新
- java - 为什么无障碍服务无法采取用户行动?
- mysql - 如何使用 VB.NET 选择 mysql 中的所有列值
- sorting - 使用链表在动态堆栈中排序