context는 Text 이전에 있는 모든 상위 요소들에 대한 정보이다. BuildContext 덕분에 아주 먼 곳의 요소에 접근할 수 있다. BuildContext는 위젯 트리에서 위젯의 위치를 제공하고 이를 통해 상위 요소 데이터에 접근할 수 있다.
ex) BuildContext 활용
import 'package:flutter/material.dart';
void main() {
runApp(const App());
}
class App extends StatefulWidget {
const App({super.key});
@override
State<App> createState() => _AppState();
}
class _AppState extends State<App> {
List<int> numbers = [];
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
textTheme: const TextTheme(
titleLarge: TextStyle(
color: Colors.red,
),
),
),
home: const Scaffold(
backgroundColor: Color(0xFFF4EDDB),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [MyLargeTitle()], // 세로 가운데
),
),
),
);
}
}
class MyLargeTitle extends StatelessWidget {
// MyLargeTitle에서 부모 요소의 theme의 값에 접근하길 원한다.
// 부모 요소와 대화할 수 있길 원한다.
const MyLargeTitle({
super.key,
});
@override
Widget build(BuildContext context) {
// context는 Text 이전에 있는 모든 상위 요소들에 대한 정보이다.
// BuildContext 덕분에 아주 먼 곳의 요소에 접근할 수 있다.
// BuildContext는 위젯 트리에서 위젯의 위치를 제공하고 이를 통해 상위 요소 데이터에 접근할 수 있다.
return Text(
'My large Title',
style: TextStyle(
fontSize: 30,
color:
Theme.of(context).textTheme.titleLarge?.color), // null safety 적용
);
}
}