По какой-то причине я не могу удалить текущую закусочную, хотя я вызываю ScaffoldState (). RemoveCurrentSnackBar ()
Я не получаю никаких сообщений об ошибках, но по какой-то причине закусочная не будет go прочь. Любой другой способ удалить панель закусок, когда пользователь выбирает элемент из DropdownButton?
Я уже пробовал ScaffoldState (). HideCurrentSnackBar () и все другие функции, которые должны удалить SnackBar.
Спасибо за ваш ответ.
class MainRoute extends StatefulWidget {
@override
_MainRouteState createState() => _MainRouteState();
}
class _MainRouteState extends State<MainRoute> {
List<Currency> dropdownItems = [
Currency(currencyName: "FOO", currencyInUSD: 22.0),
Currency(currencyName: "BOO", currencyInUSD: 22.0),
Currency(currencyName: "SOO", currencyInUSD: 22.0),
];
Currency dropdownValue;
Color color = Colors.green;
MainModel model = MainModel();
@override
void initState() {
super.initState();
dropdownValue = dropdownItems[0];
}
@override
Widget build(BuildContext context) {
return Scaffold(
///A Builder has been added so the context contains the Scaffold which
///is required to create a SnackBar
floatingActionButton: Builder(
builder: (context) {
return FloatingActionButton(
child: Icon(
Icons.add,
color: kIconColor,
),
onPressed: () {
print(dropdownItems.map((item) {
return DropdownMenuItem(
value: item,
child: Text(item.currencyName),
);
}).toList());
setState(() {
Scaffold.of(context).showSnackBar(
SnackBar(
content: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text('Which currency do you want to add to your list?'),
SizedBox(
height: 25.0,
),
DropdownButton<Currency>(
items: dropdownItems
.map<DropdownMenuItem<Currency>>((item) {
return DropdownMenuItem(
value: item,
child: Text(item.currencyName),
);
}).toList(),
value: dropdownValue,
onChanged: (value) {
setState(() {
dropdownValue = value;
ScaffoldState().removeCurrentSnackBar(
reason: SnackBarClosedReason.remove);
print("SnackBar removed");
});
},
)
],
),
action: SnackBarAction(
label: 'Cancel',
onPressed: () {
print('Cancel');
},
),
),
);
});
},
);
},
),
);
}
}