在我的应用程序中,我有一个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用于滚动。当我反复按下滑块时,这会使滑块震动。
有没有办法解决这个问题?