Flutter中Slider修改_currentSliderValue后值未保存问题求助
问题解决步骤
- 先修正拼写错误:你把
onChanged的参数写成了valeu,应该是value——虽然拖动时能看到数值变化,但这个拼写错误可能在特定场景下导致赋值异常,先改过来:onChanged: (value) { _currentSliderValue = value; setState(() {}); }, - 移除多余的
state(() {})调用:Flutter中触发UI更新只需要调用setState,这个多余的调用完全没必要,甚至可能干扰状态更新逻辑。 - 检查播放按钮的核心逻辑:拖动时数值能变化,但点击播放就回到初始值25,说明播放按钮的代码没有读取当前的
_currentSliderValue——要么是硬编码用了固定值25,要么是在播放逻辑里把变量重置回了初始值。去查看播放按钮的触发代码,确保它使用的是实时更新后的_currentSliderValue。 - 确认变量作用域:保证
_currentSliderValue是你的State类的成员变量,不是某个方法内的局部变量,否则组件重建后会重新初始化回25。
修正后的完整Slider代码示例:
Slider( activeColor: green, value: _currentSliderValue, min: 25, max: 180, divisions: 31, onChanged: (value) { _currentSliderValue = value; setState(() {}); }, ),
如果问题仍存在,重点排查播放按钮相关代码,确认是否有重置_currentSliderValue的逻辑。
内容的提问来源于stack exchange,提问作者Parsa
相关产品推荐
相关产品推荐

