Как определить, когда ScrollPane заканчивает прокрутку - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу определить, когда ScrollPane заканчивает прокрутку в моем приложении, чтобы отключить некоторые триггеры при перемещении, чем сделать интерфейс немного чище.Я нашел триггер, когда он движется, но я не могу найти триггер или способ определить, когда он останавливается

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 голосов
/ 13 сентября 2018

Вам нужно будет сделать это с помощью внешнего таймера или javafx.animation.Timeline. Используйте Timeline, если вы меняете интерфейс.

Установите флажок, например lastScrollSeen, в качестве даты и времени и активируйте этот таймер при первом получении события прокрутки. Обновляйте lastScrollSeen каждый раз, когда вы получаете другое событие прокрутки, и через определенные промежутки времени (с использованием Таймера / Временной шкалы) проверяйте, прошло ли достаточно времени без дополнительного события прокрутки, чтобы вы чувствовали себя комфортно, когда пользователь закончил прокрутку.

В этот момент сделайте свою работу, чтобы отключить триггеры и очистить флаг и таймер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...