我在一个主要的FXML
视图中包括几个FXML
s,但问题是,当我改变父级AnchorPane
的高度时,包含的视图高度没有改变,我在文档中没有找到任何关于包含的FXML
的大小。有人知道吗?
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" SplitPane.resizableWithParent="false">
<children>
<fx:include fx:id="child" source="child.fxml" />
</children>
</AnchorPane>
AnchorPane
将尝试根据您在这些子节点上设置的约束来调整其子节点的大小。来自文档:
应用程序在每个子节点上设置锚约束来配置锚在一侧或多侧。如果一个孩子被固定在相反的两侧(并且是可调整大小的),锚窗格将调整其大小以保持两者偏移量,否则锚窗格会将其调整为首选大小大小。如果在前一种情况下(锚定在相对的两侧)和孩子是不可调整大小的,那么只有上/左锚会被显示。
在您发布的代码中,您没有对子节点设置任何约束,因此它将只是调整为其首选大小。
例如,如果您想让子元素拉伸以填充整个AnchorPane
,那么您可以执行
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" SplitPane.resizableWithParent="false">
<children>
<fx:include fx:id="child" source="child.fxml" AnchorPane.topAnchor="0.0"
AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
AnchorPane.buttonAnchor="0.0" />
</children>
</AnchorPane>
请注意,这也假设child.fxml
生成的任何节点都允许增长到AnchorPane
的大小(例如,maxWidth
和maxHeight
属性有适当的值),并且AnchorPane
在窗口调整大小时也会增长,等等。您可能还需要考虑AnchorPane
是否是最佳选择,或者其他布局是否可能更好。
简而言之,在布局方面使用<fx:include>
没有什么特别之处:它的行为就像任何其他场景图形层次结构。