如何检测ScrollPane何时完成滚动

问题描述 投票:0回答:1

我想检测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;
              }
          }
        }); 
java javafx
1个回答
1
投票

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

lastScrollSeen等标志设置为日期时间,并在第一次获得滚动事件时触发该计时器。每次获得另一个滚动事件时更新lastScrollSeen,并定期(使用定时器/时间线)查看是否有足够的时间过去而没有额外的滚动事件让您感觉舒适,用户已完成滚动。

此时,您的工作是禁用触发器并清除标志和计时器。

© www.soinside.com 2019 - 2024. All rights reserved.