代碼如下:
import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: 'Returning Data', home: HomePage(), )); } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Flutter SnackBar'), ), body: Center( child: MaterialButton( color: Colors.blue, child: new Text('點我'), onPressed: () { final snackBar = new SnackBar(content: new Text('這是一個SnackBar')); Scaffold.of(context).showSnackBar(snackBar); }, ), ), ); } }
當BuildContext在Scaffold之前時,調用Scaffold.of(context)會報錯。這時可以通過Builder Widget來解決,代碼如下:
import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: 'Returning Data', home: HomePage(), )); } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Flutter SnackBar'), ), body: Builder( builder: (BuildContext context) { return new Center( child: MaterialButton( color: Colors.blue, child: new Text('點我'), onPressed: () { final snackBar = new SnackBar(content: new Text('這是一個SnackBar')); Scaffold.of(context).showSnackBar(snackBar); })); }, ), ); } }
