SeekBar.Как поймать, когда перестать двигать большим пальцем, где не трогать руку? - PullRequest
0 голосов
/ 25 ноября 2018

Как поймать, когда пользователь прекратил движение, но не убрал палец?

Пример:

Мое приложение содержит панель поиска для установки яркости на садовых светодиодах (управление UDP), и яхотите отправить только один пакет UDP, когда пользователь перестал перемещать большой палец на панели поиска, например.через 200 мс после остановки, вместо отправки кучи пакетов по событию onProgressChanged.

Как и onStopProgressChanged.

Можно ли это сделать?:

Вызов функции в onProgressChanged через 200 мс и проверкатекущая позиция равна последней позиции, и если нет, установите last_pos = cur_pos.И отправка пакета, если значения равны.

Ваше мнение?

UPD:

   private Handler seekbar_onchange_handler = new Handler();

...

   public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
       seekbar_onchange_handler.removeCallbacksAndMessages(null);
       seekbar_onchange_handler.postDelayed(() -> checkMoveStopping(progress), 100);
   }

(как включить лямбда-выражения -> Лямбда-выражения Android Studio не разрешены на этом языковом уровне ) ..

   private void checkMoveStopping(Integer progress) {
       if (progress.equals(seekbar_brightness.getProgress())) {

         // user stopped move finger            

       }
   }

Это правильное решение?

...