我正在尝试在我的应用中显示小吃栏以通知用户,但没有脚手架会显示我错误。我当前的代码是:
scaffoldKey.currentState?.showSnackBar(
new SnackBar(
backgroundColor: color ?? Colors.red,
duration: Duration(milliseconds: milliseconds),
content: Container(
height: 50.0,
child: Center(
child: new Text(
title,
style: AppTheme.textStyle.lightText.copyWith(color: Colors.white),
overflow: TextOverflow.ellipsis,
),
),
),
),
)
答案 0 :(得分:5)
使用https://pub.dev/packages/get
然后,您只需调用Get.snackbar()即可在小吃栏上显示要显示的地方。
Get.snackbar('Hi', 'i am a modern snackbar');
注意
您也可以在没有上下文的情况下使用此软件包。
答案 1 :(得分:3)
否,不可能。 Snackbar是Scaffold的一部分。 它必须有一个脚手架父母。 Snackbar
在脚手架内部,您可以像下面这样
BuildContext con=context;
final snackBar = SnackBar(content: Text(message));
Scaffold.of(con).showSnackBar(snackBar);
答案 2 :(得分:2)
Scaffold.of(context).showSnackBar()
已弃用。您现在应该使用 ScaffoldMessenger。
示例:ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Clicked!")));
Here 列出了新方法的好处。
答案 3 :(得分:1)
它可以获取当前上下文并显示小吃栏:
void _showToast(BuildContext context) {
final scaffold = Scaffold.of(context);
scaffold.showSnackBar(
SnackBar(
content: const Text('Updating..'),
),
);
this._showToast(context);