ScaffoldMessenger 範例
Flutter 2.0 引入了 `ScaffoldMessenger` 來取代舊的 `Scaffold.of(context)` 。這使得 Flutter 中的 Snackbars 和 Bottom Sheets 更加可靠。以下是一個示例,使用 `ScaffoldMessenger` 來顯示 Snackbar。
首先,需要在 `Scaffold` 中添加一個 `ScaffoldMessenger` 小部件。這裡有一個簡單的 `Scaffold` 小部件的示例:
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('ScaffoldMessenger Demo')),
body: Center(child: Text('Hello, World!')),
floatingActionButton: FloatingActionButton(
onPressed: () {
// 在这里显示 Snackbar
},
child: Icon(Icons.add),
),
);
}
}
接下來,在 FloatingActionButton 的 `onPressed` 回調中,使用 `ScaffoldMessenger` 來顯示 Snackbar。這是一個示例:
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('ScaffoldMessenger Demo')),
body: Center(child: Text('Hello, World!')),
floatingActionButton: FloatingActionButton(
onPressed: () {
final scaffoldMessenger = ScaffoldMessenger.of(context);
scaffoldMessenger.showSnackBar(
SnackBar(content: Text('Hello, Snackbar!')),
);
},
child: Icon(Icons.add),
),
);
}
}
在上述示例中,首先使用 `ScaffoldMessenger.of(context)` 方法獲取 `ScaffoldMessenger` 對象,然後使用 `showSnackBar` 方法顯示 Snackbar。這個 Snackbar 會顯示一個簡單的文本 `Hello, Snackbar!` 。
希望這個示例可以幫助您更好地理解 `ScaffoldMessenger` 的使用方式。
留言
張貼留言