包含的 FXML 不适合父级

use*_*817 1 javafx fxml

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>
Run Code Online (Sandbox Code Playgroud)

Jam*_*s_D 5

AnAnchorPane将尝试根据您在这些子节点上设置的约束来调整其子节点的大小。从文档

应用程序在每个子节点上设置锚点约束以在一侧或多侧配置锚点。如果孩子锚定在相对的两侧(并且可以调整大小),则锚定窗格将调整其大小以保持两个偏移量,否则锚定窗格将其调整为首选大小。如果在前一种情况下(锚定在两侧)并且子级不可调整大小,则只有顶部/左侧锚点将受到尊重。

在您发布的代码中,您没有对子节点设置任何约束,因此它的大小只会调整为其首选大小。

例如,如果您希望孩子伸展以填满整个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>
Run Code Online (Sandbox Code Playgroud)

请注意,这还假设child.fxml允许生成的任何节点增长到 的大小AnchorPane(例如,它的maxWidthmaxHeight属性具有适当的值),并且在AnchorPane调整窗口大小等时也会增长。您可能还想考虑是否或者不是AnchorPane最好的选择,或者其他一些布局可能会更好。

简而言之,<fx:include>在布局方面使用 an 并没有什么特别之处:它的行为就像任何其他场景图层次结构一样。