我想打电话
Scaffold.of(context).showSnackBar(SnackBar( content: Text("Snack text"),));
在onPressed of floatingActionButton of scaffold.
我收到这个错误
I/flutter (18613): Scaffold.of() called with a context that does not contain a Scaffold. I/flutter (18613): No Scaffold ancestor could be found starting from the context that was passed to ....
当你在一个体内调用Scaffold.of(context)时,它指向一个解决方案.
解决方法
您应该将floatingActionButton小部件放在Builder小部件中.
以下代码应该有效:
以下代码应该有效:
@override Widget build(BuildContext context) { return new Scaffold( floatingActionButton: new Builder(builder: (BuildContext context) { return new FloatingActionButton(onPressed: () { Scaffold .of(context) .showSnackBar(new SnackBar(content: new Text('Hello!'))); }); }),body: new Container( padding: new EdgeInsets.all(32.0),child: new Column( children: <Widget>[ new MySwitch( value: _switchValue,onChanged: (bool value) { if (value != _switchValue) { setState(() { _switchValue = value; }); } },) ],),);