Как поймать, когда пользователь прекратил движение, но не убрал палец?
Пример:
Мое приложение содержит панель поиска для установки яркости на садовых светодиодах (управление 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
}
}
Это правильное решение?