В моем приложении у меня есть PageView
и Slider
. Когда я прокручиваю PageView
, я ожидаю, что Slider
изменит свое значение, и когда я сдвигаю Slider
, я ожидаю, что страница PageView
также изменится. Для этого у меня есть состояние, которое должно быть value
из Slider
, и в onChanged
у меня будет изменение его значения, а в onChangeEnd
оживит PageView
до позиции желания:
Slider(
value: _sliderValue,
onChanged: (val) {
setState(() {
_sliderValue = val;
});
},
onChangeEnd: (val) {
_controller.animateToPage(val.toInt(),
duration: Duration(milliseconds: 300), curve: Curves.ease);
},
max: (pages.length - 1).toDouble())
И в PageView
мне также нужно обновить _sliderValue
, чтобы он работал при прокрутке PageView
:
PageView.builder(
onPageChanged: (page) {
setState(() {
_sliderValue = page.toDouble();
});
},
)
Проблема в том, что у меня теперь есть 2 места, в которых я изменяю _sliderValue
- одно в onChanged
для Slider
, чтобы быть отзывчивым, одно в onPageChanged
для работы с прокруткой. Это заставляет слайдер сотрясаться, когда я нажимаю на него несколько раз.
Есть ли способ решить эту проблему?