我有BorderPane
作为根元素,其中HBox
位于其顶部。在HBox
我有5个AnchorPane
s,其中4.充当间隔符。这是剥离的FXML:
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="710.0" prefWidth="1190.0" stylesheets="@style.css" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
<top>
<HBox prefHeight="70.0" BorderPane.alignment="CENTER">
<children>
<AnchorPane prefHeight="70.0" prefWidth="200.0">
...
</AnchorPane>
<AnchorPane prefHeight="70.0" prefWidth="200.0">
...
</AnchorPane>
<AnchorPane prefHeight="70.0" prefWidth="200.0">
...
</AnchorPane>
<AnchorPane id="empty" minWidth="0.0" prefHeight="70.0" prefWidth="0.0" HBox.hgrow="ALWAYS" />
<AnchorPane prefHeight="70.0">
...
</AnchorPane>
</children>
</HBox>
</top>
</BorderPane>
我的问题是,当我调整窗口大小时empty
窗格正在增长,但它不会缩小到初始宽度(应用程序启动时的大小)之下。
显示发生了什么(或不发生)的视频:https://jumpshare.com/v/0QriIiITUlSRgLMy4ev5
这是预期的行为还是JavaFX中的错误?
答案 0 :(得分:3)
在FXML中,在BorderPane
替换的定义中:
minWidth="-Infinity"
与
minWidth="0".
问题是你的HBox
没有缩小,因为BorderPane
本身并没有缩小。
最小宽度为0将确保BorderPane
缩小,因此HBox
也会调整大小。
我已经尝试过你的FXML,通过这个小修改,布局似乎是正确的。