Events 滚动条事件中的旧值
我有一个垂直滚动条。当它调整大小时,会触发一个事件,该事件检查它是否为100%或更高,以隐藏它,而不是获取新的大小值,只获取旧的大小值。可见性可以更改,但大小不变:Events 滚动条事件中的旧值,events,javafx,scrollbar,Events,Javafx,Scrollbar,我有一个垂直滚动条。当它调整大小时,会触发一个事件,该事件检查它是否为100%或更高,以隐藏它,而不是获取新的大小值,只获取旧的大小值。可见性可以更改,但大小不变: scrollBarL.heightProperty().addListener((ObservableValue<? extends Number> ov, Number old_val, Number new
scrollBarL.heightProperty().addListener((ObservableValue<? extends Number> ov,
Number old_val, Number new_val) -> {
if (scrollBarL.getVisibleAmount() >= 1 ) {
scrollBarL.setMaxWidth(0); // Not change width immediately
scrollBarL.setPrefWidth(0); // Not change width immediately
scrollBarL.setMinWidth(0); // Not change width immediately
scrollBarL.setVisible(false); // OK. Change visibility immediately
} else {
scrollBarL.setMaxWidth(19); // Not change width immediately
scrollBarL.setPrefWidth(19); // Not change width immediately
scrollBarL.setMinWidth(19); // Not change width immediately
scrollBarL.setVisible(true); // OK. Change visibility immediately
}
});
scrollBarL.heightProperty().addListener((ObservableValue)高度属性上的更改侦听器可能是在重新计算可见量之前触发的。为什么不直接使用VisibleMount
属性注册侦听器?(听起来有点像你试图重现滚动窗格的功能。你能只用滚动窗格吗?)正确。使用visibleAmountProperty可以正常工作,但滚动条在我用鼠标越过滚动条容器之前一直可见/不可见,为什么?@OundRonings对我来说很好。创建一个,并将您的问题包括在内。可见性是正确的,但不影响大小的更改。为什么?