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
공식 문서입니다.