我正在尝试在BorderPane的左节点上进行TranslateTransition。我可以让节点滑入'点击即可退出'没有按预期工作。这是代码段。
@Override
public void initialize(URL url, ResourceBundle rb) {
vbx_lfpane.setVisible(false);
}
@FXML
private void paneClicked(MouseEvent event) {
if(vbx_lfpane.isVisible()) {
vbx_lfpane.setVisible(false);
TranslateTransition tt1 = new TranslateTransition(Duration.millis(500), vbx_lfpane);
tt1.setFromX(vbx_lfpane.getLayoutBounds().getMinX());
tt1.setToX( - (vbx_lfpane.getLayoutBounds().getMinX() + vbx_lfpane.getWidth()));
tt1.play();
} else {
vbx_lfpane.setVisible(true);
vbx_lfpane.setTranslateX(-vbx_lfpane.getWidth());
TranslateTransition tt2 = new TranslateTransition(Duration.millis(500), vbx_lfpane);
tt2.setByX(vbx_lfpane.getWidth());
tt2.play();
}
}
答案 0 :(得分:1)
在开始播放"滑出"之前,您可以将vbx_lfpane
的展示率设置为false
。过渡。转换完成后,您需要将可见性设置为false
:
tt1.setOnFinished(e -> vbx_lfpane.setVisible(false));
tt1.play();