Flutter Slider值可改变但无法拖动/显示变化问题求助
Flutter滑块无法拖动且值不更新的解决方案
问题核心在于你把滑块的数值变量currentSliderValue定义在了build方法内部。每次调用setState时,build方法会重新执行,这个变量会被重新初始化为100.0,导致拖动滑块后数值立刻被重置,看起来滑块完全没反应。
修正方法很简单,把currentSliderValue移到State类的成员变量位置,不要放在build方法里:
class _YourWidgetState extends State<YourWidget> { // 将变量作为State类的成员定义在这里 double currentSliderValue = 100.0; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title), ), body: Slider( value: currentSliderValue, onChanged: (double value) { setState(() { currentSliderValue = value; }); }, label: '$currentSliderValue', ), ); } }
修改后,currentSliderValue会被保留在State实例中,setState触发build时不会重置它的值,滑块就能正常拖动,数值也会实时更新显示。
内容的提问来源于stack exchange,提问作者csh
相关产品推荐
相关产品推荐

