我有一个视图,其中两个TitledPane在垂直方向的SplitPane中。我希望当我折叠其中一个时,将另一个调整为Scene的高度。这是我的.fxml文件的代码:

<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TableColumn?>
<BorderPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml"
            fx:id="pane"
            fx:controller="stackoverflow.three.Controller">
    <center>
        <SplitPane fx:id="split" orientation="VERTICAL">
            <TitledPane fx:id="first" text="First">
                <TableView>
                    <columns>
                        <TableColumn text="Test"/>
                    </columns>
                </TableView>
            </TitledPane>
            <TitledPane fx:id="second" text="Second">
                <TableView>
                    <columns>
                        <TableColumn text="Test"/>
                    </columns>
                </TableView>
            </TitledPane>
        </SplitPane>
    </center>
</BorderPane>


以下是一些场景:
初始状态:
java - JavaFx:自动调整TitledPane的大小-LMLPHP
当第一个折叠时:
java - JavaFx:自动调整TitledPane的大小-LMLPHP

如您所见,如果我折叠第一个视图,则视图底部有一个缝隙,但我不希望有此缝隙。

我曾尝试将maxHeight例如设置为Infinity,但随后自动向上移动到第一个却无法正常工作...
任何想法我该怎么办?

最佳答案

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TableColumn?>

<BorderPane fx:id="pane" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="stackoverflow.three.Controller">
    <center>
      <VBox prefHeight="800.0">
         <children>
               <TitledPane fx:id="first" text="First">
                  <content>
                      <TableView prefHeight="2000.0">
                          <columns>
                              <TableColumn text="Test" />
                          </columns>
                      </TableView>
                  </content>
               </TitledPane>
               <TitledPane fx:id="second" text="Second">
                  <content>
                      <TableView prefHeight="2000.0">
                          <columns>
                              <TableColumn text="Test" />
                          </columns>
                      </TableView>
                  </content>
               </TitledPane>
         </children>
      </VBox>
    </center>
</BorderPane>

08-28 18:44