如何检测ScrollPane何时完成滚动

时间:2018-09-13 00:02:13

标签: java javafx

我想检测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;
              }
          }
        }); 

1 个答案:

答案 0 :(得分:1)

您需要使用外部Timer或javafx.animation.Timeline进行此操作。如果要更改UI,请使用时间轴。

将诸如lastScrollSeen之类的标志设置为日期时间,并在首次获得滚动事件时触发该计时器。每次遇到另一个滚动事件时,都要lastScrollSeen进行更新,并定期(使用计时器/时间轴)查看是否已经经过了足够的时间而没有其他滚动事件,以使用户感到满意,从而使滚动完成。 >

此时,您要进行工作以禁用触发器并清除标志和计时器。