
Flutter에서 builder 함수는 새로운 BuildContext를 생성하여 특정 위치에서 위젯을 빌드할 수 있도록 하는 콜백 함수입니다. 이를 통해 위젯 트리의 다른 부분과 분리된 BuildContext를 사용하여 위젯을 빌드할 수 있습니다.
builder: 위젯을 빌드하는 함수로, 새로운 BuildContext를 매개변수로 받습니다. 이 함수는 BuildContext와 함께 위젯을 반환해야 합니다.BuildContext에서 벗어나 새로운 BuildContext를 생성하여 특정 작업을 수행할 수 있습니다.builder를 사용하여 새로운 컨텍스트를 생성하고, 이를 통해 상위 위젯에 접근할 수 있습니다.아래 예제는 showModalBottomSheet를 사용하여 모달 다이얼로그를 표시하고, builder를 통해 모달의 내용을 정의하는 방법을 보여줍니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Page'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
height: 200,
color: Colors.white,
child: Center(
child: Text('This is a modal'),
),
);
},
);
},
child: Text('Show Modal'),
),
),
);
}
}
이 외에도 다양한 곳에서 builder 함수가 사용됩니다. 예를 들어, ListView.builder, FutureBuilder, StreamBuilder 등에서 builder 함수가 사용됩니다. 이 함수들은 모두 새로운 BuildContext를 생성하여 특정 위치에서 위젯을 빌드하는 역할을 합니다.
builder 함수를 사용하여 새로운 BuildContext를 생성함으로써 위젯 트리 내에서의 위치를 보다 명확히 하고, 상위 위젯과의 상호작용을 관리합니다.builder 함수를 사용하여 특정 위치에서 새로운 BuildContext를 생성하고, 반응형 디자인을 구현할 수 있습니다.ListView.builder 공식 문서입니다.FutureBuilder 공식 문서입니다.StreamBuilder 공식 문서입니다.