К счастью, мне удалось решить эту проблему, но я не уверен, что это лучший способ решить эту проблему. Если у кого-то есть лучшее решение, поделитесь им. поэтому я просто добавил эту строку кода в MainController:
drawer.setMinWidth(0);
, поэтому MainController должен выглядеть так:
@Override
public void initialize(URL url, ResourceBundle rb) {
try {
// TODO
VBox box = FXMLLoader.load(getClass().getResource("NavDrawer.fxml"));
drawer.setSidePane(box);
drawer.setMinWidth(0); // this is the new code added
} catch (IOException ex) {
Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, null, ex);
}
HamburgerSlideCloseTransition task = new HamburgerSlideCloseTransition(hamburger);
task.setRate(-1);
hamburger.addEventHandler(MouseEvent.MOUSE_CLICKED, (Event event) -> {
drawer.toggle();
});
drawer.setOnDrawerOpening((event) -> {
task.setRate(task.getRate() * -1);
task.play();
drawer.setMinWidth(220);
});
drawer.setOnDrawerClosed((event) -> {
task.setRate(task.getRate() * -1);
task.play();
drawer.setMinWidth(0);
});
} }