Javafx 包含的FXML不适合父项

Javafx 包含的FXML不适合父项,javafx,fxml,Javafx,Fxml,我在一个主视图中包含了几个FXMLs,但问题是当我更改父视图的高度时,它是一个AnchorPane包含的视图高度没有改变,并且我在文档中没有找到任何关于包含的FXML大小的内容。有人知道吗 <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" SplitPane.resizableWithParent="false"> <children> &

我在一个主视图中包含了几个
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 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>
可能会更好


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

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>
可能会更好


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

布局将由您将包含的FXMLs的根元素放置在其中的任何容器(在您的情况下为
锚定器
)执行,根据这些根元素指定的约束(对于
AnchorPane
,这些约束将是
leftAnchor
topAnchor
等)。请显示一些代码来显示您正在执行的操作。我知道,但对于场景生成器中包含的FXML,它不会显示leftAnchor、topAnchor或其他内容。不管您如何生成FXML,它都将以相同的方式进行处理。所以如果你不设置这些,你就不会得到你想要的结果。(我不太使用SceneBuilder;我甚至不知道您可以在SceneBuilder中执行
fx:include
。)我确实在FXML代码中手动添加了,但没有任何更改。请发布一些代码。您要求人们帮助诊断一个他们看不见的问题。布局将由您将包含的FXML的根元素放入的任何容器(在您的情况下为
AnchorPane
)根据这些根元素指定的约束来执行(对于
AnchorPane
来说,这些可能是
leftAnchor
topAnchor
等)。请显示一些显示您正在执行的操作的代码。我知道,但对于场景生成器中包含的FXML,它不会显示leftAnchor、topAnchor或其他内容。不管您如何生成FXML,它都将以相同的方式进行处理。因此,如果您不设置这些,则无法获得所需的结果。(我不太使用SceneBuilder;我甚至不知道您可以在SceneBuilder中执行
fx:include
)。我确实在FXML代码中手动添加了,但它没有改变任何内容。请发布一些代码。您要求人们帮助诊断他们看不到的问题。