1. ScaffoldMessenger 이용
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text("스낵바!")
));
2. Global Key & scaffoldMessengerKey 이용
최상위 위젯 MaterialApp단위에서 scaffoldMessenger에 global Key를 사용하여 Snackbar 사용
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
final rootScaffoldKey = GlobalKey<ScaffoldMessengerState>();
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
scaffoldMessengerKey: rootScaffoldKey,
home: MyKey(),
);
}
}
class MyKey extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
rootScaffoldKey.currentState?.showSnackBar(SnackBar(
content: Text('snack'),
));
},
child: Icon(Icons.add),
),
);
}
}
//1. 최상위 스캐폴드키에 생성(ScaffoldMessengerState)
final rootScaffoldKey = GlobalKey<ScaffoldMessengerState>();
//2. MaterialApp의 생성자로 scaffoldMessengerKey 삽입
MaterialApp(
scaffoldMessengerKey: rootScaffoldKey,
....
);
//3. 버튼에서 사용
onPressed: () {
rootScaffoldKey.currentState?.showSnackBar(SnackBar(
content: Text('snack'),
));
},
'flutter > widget' 카테고리의 다른 글
아이콘 만들어 주는 사이트 (0) | 2023.09.08 |
---|---|
TextFormField (0) | 2022.05.19 |
FutureBuilder (0) | 2022.05.14 |