Flutter - Как запустить метод после завершения взаимодействия с Slider? - PullRequest
0 голосов
/ 12 мая 2018

В настоящее время я изучаю Flutter, и у меня возникают некоторые проблемы с отображением Snackbar после завершения взаимодействия со слайдером (другими словами, окончательное значение было установлено, когда пользователь убирает палец со слайдера). Я не могу вызвать свой метод _showSnackBar() в onChange, потому что снэк-бар создается и отображается много раз, один за другим.

Что я могу сделать, чтобы вызвать метод только после завершения взаимодействия? Я думал о том, чтобы сделать запрос на извлечение и добавить что-то вроде onInteractionEnded свойства обратного вызова, но я хотел бы выяснить, есть ли другой способ.

Вот мой код для справки.

class _MySliderState extends State<MySlider> {

  int _value = 2;

  @override
  Widget build(BuildContext context) {
    return Slider(
      min: 0.0,
      max: 4.0,
      divisions: 4,
      value: (_value * 1.0),
      onChanged: (double value) {
          setState(() {
            _value = value ~/ 1;
          });
          _showSnackBar();
      },
    );
  }

  void _showSnackBar() {
    var snackbar = SnackBar(content: const Text('Slider value changed'));
    Scaffold.of(context).showSnackBar(snackbar);
  }
}

Спасибо.

1 Ответ

0 голосов
/ 12 мая 2018

onChangeStart и onChangeEnd были добавлены к Slider совсем недавно

https://github.com/flutter/flutter/pull/17298

Изменение должно быть доступно в мастер уже.

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