HBox孩子没有萎缩

时间:2016-06-03 08:45:20

标签: java javafx fxml

我有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中的错误?

1 个答案:

答案 0 :(得分:3)

在FXML中,在BorderPane替换的定义中:

minWidth="-Infinity"

minWidth="0".

问题是你的HBox没有缩小,因为BorderPane本身并没有缩小。

最小宽度为0将确保BorderPane缩小,因此HBox也会调整大小。

我已经尝试过你的FXML,通过这个小修改,布局似乎是正确的。