我想检测ScrollPane何时完成我的应用程序中的滚动,以在移动时禁用一些触发器,以帮助使UI更加整洁。我找到了它何时移动的触发器,但是我找不到确定它何时停止的触发器
scrollPane.vvalueProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
if (oldValue!=newValue) {
isScrolling = true;
} else {
isScrolling = false;
}
}
});
答案 0 :(得分:1)
您需要使用外部Timer或javafx.animation.Timeline进行此操作。如果要更改UI,请使用时间轴。
将诸如lastScrollSeen
之类的标志设置为日期时间,并在首次获得滚动事件时触发该计时器。每次遇到另一个滚动事件时,都要lastScrollSeen
进行更新,并定期(使用计时器/时间轴)查看是否已经经过了足够的时间而没有其他滚动事件,以使用户感到满意,从而使滚动完成。 >
此时,您要进行工作以禁用触发器并清除标志和计时器。