我在一个主FXML
视图中包含了几个FXML
但事情是当我更改父级的高度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>
答案 0 :(得分:4)
AnchorPane
将尝试根据您在这些子节点上设置的约束来调整其子项的大小。来自documentation:
应用程序为每个子项设置锚点约束以配置 锚定在一侧或多侧。如果孩子被固定在对侧 (并且可以调整大小),锚窗格将调整它以保持两者 偏移,否则锚定窗格会将其调整为其首选大小 尺寸。如果在前一种情况下(锚定在对面)和孩子 不可调整大小,只有顶/左锚点才会被尊重。
在您发布的代码中,您没有在子节点上设置任何约束,因此它只会根据其首选大小进行调整。
例如,如果您希望孩子伸展以填充整个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
是否是最佳选择,或者some other layout是否有效更好。
简而言之,在布局方面使用<fx:include>
没有什么特别之处:它的行为与任何其他场景图层次结构一样。