Flutter에서 BuildContext
타입의 context
는 위젯 트리에서 현재 위젯의 위치를 나타내는 객체입니다. 이 context
는 여러가지 용도로 사용되며, 다음과 같은 주요 기능을 가집니다:
Navigator: 페이지 라우팅을 할 때 Navigator
를 사용하려면 context
가 필요합니다. 예를 들어, 새로운 페이지로 이동하거나 현재 페이지를 닫을 때입니다.
Navigator.push(context, MaterialPageRoute(builder: (context) => NewPage()));
Theme: context
를 통해 앱의 테마 데이터에 접근할 수 있습니다.
Theme.of(context).primaryColor
Scaffold: context
를 사용하여 현재 Scaffold
위젯에 접근할 수 있습니다. 이를 통해 스낵바를 표시하거나 드로어를 열 수 있습니다.
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Hello')));
InheritedWidget: context
를 통해 상위 위젯에서 공유하는 데이터에 접근할 수 있습니다.
MyInheritedWidget.of(context).someData
MediaQuery: context
를 통해 디바이스 화면의 정보에 접근할 수 있습니다.
MediaQuery.of(context).size.width
Localization: 다국어 지원을 위해 context
를 사용하여 현재 로케일 정보에 접근할 수 있습니다.
Localizations.localeOf(context).languageCode
이러한 기능들은 위젯 트리의 현재 위치(context
)를 알아야만 사용할 수 있기 때문에, context
는 Flutter 개발에서 중요한 역할을 합니다.