点击底部表格中的项目时显示小吃条



我想在底部工作表中单击项目时显示Snackbar。我试过了。

@override
Widget build(BuildContext defaultContext) {
return Scaffold(
body: Center(
child: RaisedButton(
onPressed: () => showModalBottomSheet(
context: defaultContext,
builder: (BuildContext context) {
return Builder(
builder: (BuildContext builderContext) {
return ListTile(
title: Text("Click me"),
onTap: () {
Navigator.pop(builderContext); // hiding bottom sheet
Scaffold.of(builderContext).showSnackBar(SnackBar(content: Text("Hi")));
},
);
},
);
},
),
),
),
);
}

但是我有错误

使用不包含Scaffold 的上下文调用的Scaffold.of((

注意此问题与不重复

PS:我知道我可以在Scaffold中使用GlobalKey来显示Snackbar,但我想像文档建议使用Builder那样使用Builder。我确实用了建造者,但没用。

这终于成功了。

@override
Widget build(BuildContext defaultContext) {
return Scaffold(
body: Center(
child: Builder(builder: (builderContext) {
return RaisedButton(
onPressed: () => showModalBottomSheet(
context: defaultContext,
builder: (BuildContext context) {
return ListTile(
title: Text("Click me"),
onTap: () {
Navigator.pop(builderContext); // hiding bottom sheet
Scaffold.of(builderContext).showSnackBar(SnackBar(content: Text("Hi")));
},
);
},
),
);
},),
),
);
}

我需要把Builder移到树上。不知道原因,但它起了作用。

最新更新