Есть ли setState () после showDialog ()? Попробуйте сделать как показано ниже.
при вызове showDialog с ожиданием и получении данных. И вызовите setState ().
_blurdialog(BuildContext context) async {
var newBlurValue = await showDialog<void>(context:context,builder:(context){ return
AlertDialog(
title: const Text('Background Blur'),
content: StatefulBuilder(
builder:(BuildContext context, StateSetter setState) {
return Column(
mainAxisSize:MainAxisSize.min,
children:[
Container(
child: Slider(
value: _blurvalue,
min: 0,
max: 5,
divisions: 5,
onChanged: (value) {
setState(() {
_blurvalue = value;
});
}
),
),
]);
}),
actions: <Widget>[
FlatButton(
child: const Text('Done'),
onPressed: () {
Navigator.of(context).pop(_blurvalue);
print(_blurvalue);
},
),
] );});
setState(() => _blurvalue = newBlurValue);
}
------------- or ---------------
Future<dynamic> _blurdialog(BuildContext context) async {
return await showDialog<void>(context:context,builder:(context){ return
AlertDialog(
title: const Text('Background Blur'),
content: StatefulBuilder(
builder:(BuildContext context, StateSetter setState) {
return Column(
mainAxisSize:MainAxisSize.min,
children:[
Container(
child: Slider(
value: _blurvalue,
min: 0,
max: 5,
divisions: 5,
onChanged: (value) {
setState(() {
_blurvalue = value;
});
}
),
),
]);
}),
actions: <Widget>[
FlatButton(
child: const Text('Done'),
onPressed: () {
Navigator.of(context).pop(_blurvalue);
print(_blurvalue);
},
),
] );});
}
...
var newBlur = await _blurdialog(context);
setState(() => _blurvalue = newBlur);