正如你所看到的,我使用提供程序来传递我的数据,在这里我想用一个函数保存rangeslider值,当我使用rangeslider的开始和结束值时,它不再起作用我需要更多关于这是如何发生的信息,但是当我在改回第一个位置后使用我的范围滑块时,这是我的代码
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();
});
},
),
]),
),
);