如何检测 ScrollPane 何时完成滚动

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

              }

          }

        }); 


临摹微笑
浏览 156回答 1
1回答

慕田峪4524236

您需要使用外部计时器或 javafx.animation.Timeline 来执行此操作。如果您要更改 UI,请使用时间轴。设置一个标志,例如lastScrollSeen日期时间,并在您第一次获得滚动事件时触发该计时器。lastScrollSeen每次获得另一个滚动事件时更新,并定期(使用计时器/时间轴)查看是否已经过去了足够的时间而没有额外的滚动事件让您感到用户已完成滚动。此时,请执行禁用触发器并清除标志和计时器的工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java