如何在颤动中显示小吃店消息
Posted
技术标签:
【中文标题】如何在颤动中显示小吃店消息【英文标题】:how to show snackbar message in flutter 【发布时间】:2021-06-03 21:37:02 【问题描述】:我试图在用户单击按钮时显示小吃栏,但我不能这样做。
我没有收到警告或错误,我不知道我错过了什么
这是我的代码:
RaisedButton(
onPressed: ()
if (formKey.currentState.validate())
formKey.currentState.save();
dbHelper
.addNote(Notes(categoryID, notBaslik,
notIcerik, "", selectedOncelik))
.then((savedNoteID)
if (savedNoteID != 0)
_scaffoldKey.currentState
.showSnackBar(SnackBar(
content: Text("Not Eklendi"),
duration: Duration(seconds: 2),
));
else
Navigator.pop(context);
);
,
child: Text("Kaydet"),
color: Colors.red),
【问题讨论】:
你能确认savedNoteID不是0吗? @lrsvmb 可以,我成功将记录添加到数据库 @TolgaKÜÇÜK 警告/错误是什么? 错误是什么?在您编写小吃店的地方发布您的 logcat 和小吃店代码 我在我的问题中提到我没有收到任何消息或警告 【参考方案1】:确保您在小部件树中定义了一个 Scaffold,您试图在其中显示小吃栏,并且 _scaffoldKey 作为属性添加到您的脚手架,即
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
Scaffold(key: _scaffoldKey, body: ...)
您也可以使用Scaffold.of(context)
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Not Eklendi"), duration: Duration(seconds: 2));
喜欢:
RaisedButton(
onPressed: ()
if (formKey.currentState.validate())
formKey.currentState.save();
dbHelper
.addNote(Notes(categoryID, notBaslik,
notIcerik, "", selectedOncelik))
.then((savedNoteID)
if (savedNoteID != 0)
Scaffold.of(context).showSnackBar(SnackBar(
content: Text("Not Eklendi"),
duration: Duration(seconds: 2),
));
else
Navigator.pop(context);
);
,
child: Text("Kaydet"),
color: Colors.red),
在某些情况下,您需要将其包装在 Builder 小部件中以获得正确的 context
。如果仍然无法正常工作,您可以尝试一下
【讨论】:
我试过Scaffold.of(context).showSnackBar
也定义了 _scaffoldKey 并添加了我的脚手架树,但它不起作用。【参考方案2】:
初始化一个变量
final _scaffoldKey = GlobalKey<ScaffoldState>();
将_scaffoldKey
添加到脚手架
Scaffold(
key: _scaffoldKey,
)
代码
RaisedButton(
onPressed: ()
if (formKey.currentState.validate())
formKey.currentState.save();
dbHelper
.addNote(Notes(categoryID, notBaslik,
notIcerik, "", selectedOncelik))
.then((savedNoteID)
if (savedNoteID != 0)
final snackBar = SnackBar(content: Text("Test"));
_scaffoldKey.currentState.showSnackBar(snackBar);
else
Navigator.pop(context);
);
,
child: Text("Name"),
color: Colors.red),
【讨论】:
以上是关于如何在颤动中显示小吃店消息的主要内容,如果未能解决你的问题,请参考以下文章