【发布时间】:2022-07-19 05:08:54
【问题描述】:
我不明白为什么我的范围滑块在拖动时不更新值。我应该使用 onChanged 函数更新状态,但似乎没有任何效果。它仅在我按下“应用”按钮并再次重新打开我的 alertDialog 时才有效,在那里我看到滑块的值已更新。所有这些都被包裹在一个 statefulWidget 和 Appbar 中。当我按下过滤器按钮时,会出现一个带有过滤器的弹出窗口。
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Filter'),
content: SizedBox(
child: Card(
child: Column(
children: [
Text('Age'),
RangeSlider(
values: _rangeValues,
divisions: 20,
labels: RangeLabels(
_rangeValues.start.round().toString(),
_rangeValues.end.round().toString()),
onChanged: ( value ) {
_rangeValues = value ;
setState(() {
isFiltering = false;
varSelectedFilterAgeStart = value.start;
varSelectedFilterAgeEnd = value.end;
});
},
min: 0.0,
max: 20.0,
),
],
),
),
),
actions: [
ElevatedButton(
child: const Text('Apply'),
onPressed: () {
setState(() {
isFiltering = true;
varSelectedFilterAge = varSelectedFilterAgeStart;
});
Navigator.of(context).pop(varSelectedFilterAge);
},
),
ElevatedButton(
child: const Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
});
我做错了什么??
【问题讨论】: