Flutter 如何在颤振中保存范围滑块值

Flutter 如何在颤振中保存范围滑块值,flutter,dart,range,flutter-layout,flutter-widget,Flutter,Dart,Range,Flutter Layout,Flutter Widget,正如你们所看到的,我使用提供者来传递数据,在这里,我想用一个函数保存RangeSlaider值,当我使用RangeSlaider的开始值和结束值时,它不再起作用了,我需要更多的信息来了解这是如何发生的,但当我在更改回第一个位置后使用RangeSlaider时,这里是我的代码 final range = ModalRoute.of(context).settings.arguments as Map<String, dynamic>; final atta = Provider

正如你们所看到的,我使用提供者来传递数据,在这里,我想用一个函数保存RangeSlaider值,当我使用RangeSlaider的开始值和结束值时,它不再起作用了,我需要更多的信息来了解这是如何发生的,但当我在更改回第一个位置后使用RangeSlaider时,这里是我的代码

final range =
    ModalRoute.of(context).settings.arguments as Map<String, dynamic>;
final atta = Provider.of<AttProvider>(context);
RangeValues values = RangeValues(
  range['min'].toDouble(),
  range['max'].toDouble(),
);
var start = range['min'];
var end = range['max'];
return Scaffold(
  appBar: AppBar(
    centerTitle: true,
    title: Text(range['title']),
  ),
  body: StatefulBuilder(
    builder: (context, setState) => Column(children: [
      Padding(
        padding: const EdgeInsets.all(8.0),
        child: Row(
          children: [
            Text('Start in'),
            Text(
              ' $start',
              style: TextStyle(color: Colors.black),
            ),
            Spacer(),
            Text('End in '),
            Text(
              '$end',
              style: TextStyle(color: Colors.black),
            ),
          ],
        ),
      ),
       RangeSlider(
        onChangeEnd: (vala) {
          atta.addItem(
              range['id'], 0, vala.start.toInt(), vala.end.toInt(), true);
        },
        values: values,
        min: range['min'].toDouble(),
        max: range['max'].toDouble(),
        onChanged: (val) {
          setState(() {
            values = val;
            start = val.start.toInt();
            end = val.end.toInt();
          });
        },
      ),
    ]),
  ),
);
最终范围=
ModalRoute.of(context.settings.arguments)作为映射;
最终附件=提供方(上下文);
RangeValues=RangeValues(
范围['min'].toDouble(),
范围['max'].toDouble(),
);
var开始=范围['min'];
var端=范围['max'];
返回脚手架(
appBar:appBar(
标题:对,
标题:文本(范围['title']),
),
正文:StatefulBuilder(
生成器:(上下文,setState)=>列(子项:[
填充物(
填充:常数边集全部(8.0),
孩子:排(
儿童:[
文本('Start in'),
正文(
“$start”,
样式:TextStyle(颜色:Colors.black),
),
垫片(),
文本(“以结尾”),
正文(
“$end”,
样式:TextStyle(颜色:Colors.black),
),
],
),
),
范围滑块(
ONCHANGEND:(瓦拉){
附件(
范围['id'],0,vala.start.toInt(),vala.end.toInt(),true);
},
价值观:价值观,
最小值:范围['min'].toDouble(),
最大值:范围['max'].toDouble(),
一旦更改:(val){
设置状态(){
值=val;
start=val.start.toInt();
end=val.end.toInt();
});
},
),
]),
),
);