fxml - 隐藏控件仍保留在工具栏中

fxml - Hidden control still keeps a place in ToolBar

我正在开发这个在 FXML 中实现拼写检查的记事本。我想在拼写检查程序在后台工作时使用加载器,所以我使用了 ProgressIndicator。问题是,当我隐藏 ProgressIndicator 时,它仍然在原来的位置保留了一点 space。

我想要的是隐藏控件以及它所拥有的 space 就像它不存在一样。

这是我的 FXML 代码:

<ToolBar onKeyTyped="#onTextChanged" prefHeight="40.0" prefWidth="200.0" BorderPane.alignment="CENTER">
     <items>
        <Button fx:id="btnCorrect" mnemonicParsing="false" onAction="#onCorrectionClicked" >
           <graphic>
              <ImageView fx:id="imgButton" fitHeight="23.0" fitWidth="23.0" pickOnBounds="true" preserveRatio="true">
                 <image>
                    <Image url="@../../img/book.png" />
                 </image>
              </ImageView>
           </graphic>    
        </Button>
        <ProgressIndicator  prefHeight="23.0" prefWidth="23.0" />
        <Separator orientation="VERTICAL" prefHeight="0.0" prefWidth="3.0" />
        ...
     </items>
  </ToolBar>

如果您通过 managed 属性 分离节点,您可以释放布局空间 - 这将迫使父级在没有您的节点的情况下重新绘制,因为它不再受其控制。不要忘记用相同的 属性 重新附加它,否则它将永远不会再次显示

而不是写

progressIndicator.setVisible(false)

toolbar.getItems().remove(progressIndicator);

您可以重新添加它写 toolbar.getItems().add(1,progressIndicator);