在将其标记为重复之前,请先看一下,我一直在尝试this thread,但我无法使其正常工作。 我正在尝试使我的学习应用程序显示一个快餐栏,是的,我运行了Google Cookbook示例,它可以工作,但是我试图挑战自己做的其他事情,基本上是什么,只是一个带有两个按钮的支架增加和减少,当索引为零时,我要显示索引为零的小吃店,不能减少得更多。所以我得到了这个按钮,onPressed方法调用了传递上下文参数的_onTapPrevious方法,但是我不确定这是传递上下文的正确方法。
new RaisedButton(
padding: const EdgeInsets.all(8.0),
textColor: Colors.white,
color: Colors.redAccent,
onPressed: () => _onTapPrevious(context),
child: new Text("Previous"),
),
这是我创建的快餐栏的_onTapPrevious方法,还检查小部件索引是否大于0,如果可以,则可以减小索引,当它达到0时应显示快餐栏。
_onTapPrevious(BuildContext context) {
final snackBar = SnackBar(content: Text("Index 0, can't decrease more."));
setState(() {
if (widget.index > 0) {
widget.index--;
} else {
Scaffold.of(context).showSnackBar(snackBar);
}
});
}
我得到的错误:
flutter: Another exception was thrown: Scaffold.of() called with a context that does not contain a Scaffold.
答案 0 :(得分:0)
尝试添加
final _scaffoldKey = GlobalKey<ScaffoldState>();
上课,然后在脚手架中:
key: _scaffoldKey,
最后:
_scaffoldKey.currentState.showSnackBar(snackBar);
希望有帮助!