2016-06-03 16 views
1

Ich habe eine BorderPane als Wurzelelement, eine HBox in der Spitze. In der HBox habe ich 5 AnchorPane s, wobei die 4. als Abstandshalter fungiert. Dies ist die abgespeckte FXML:HBox Kind nicht schrumpfen

<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> 

Mein Problem ist, dass die empty Scheibe wächst, wenn ich die Größe des Fensters, aber nicht unter der ursprünglichen Breite (die Größe hatte, wenn die Anwendung gestartet) schrumpfen.

Ein Video zu zeigen, was ist (oder nicht) passiert: https://jumpshare.com/v/0QriIiITUlSRgLMy4ev5

Ist dies das erwartete Verhalten oder es ist ein Fehler in JavaFX?

+0

Es soll wie erwartet funktionieren. Was passiert, wenn Sie die Größe des Fensters verkleinern? Welche Teile werden verkleinert? – DVarga

+0

Wenn ich die Größe größer anlege, verkleinert sich der leere Bereich, um die Lücke zu füllen, aber wenn ich die Größe verkleinere, wird nichts in der hbox geändert und das Ende davon wird ausgeblendet. Überprüfen Sie dieses Video: https://jumpshare.com/v/0QriIiITUlSRgLMy4ev5 – vsakos

+0

Was Sie geschrieben haben, ist korrekt. Bitte posten Sie den vollständigen Code, damit wir Ihnen helfen können, da das Layout von etwas anderem betroffen ist. – DVarga

Antwort

2

Im FXML, in der Definition des BorderPane ersetzen:

minWidth="-Infinity" 

mit

minWidth="0". 

Das Problem war, dass Ihr HBox nicht schrumpft, weil die BorderPane sich nicht mehr schrumpft.

Minimale Breite von 0 wird sicherstellen, dass die BorderPane schrumpft, und daher wird die HBox auch in der Größe geändert.

Ich habe Ihre FXML versucht, mit dieser kleinen Änderung scheint das Layout korrekt.

+0

Danke, es funktioniert. – vsakos