LayoutBuilder는 부모 위젯이 제공하는 크기 제약 조건에 접근할 수 있는 Builder 위젯이다. 레이아웃 시간에 builder 함수를 호출하면서 부모 위젯의 제약 조건을 제공하기 때문에 자식 위젯의 레이아웃을 동적으로 결정할 수 있다.
Expanded(
child: LayoutBuilder(
builder: (context, constraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: constraints.maxHeight,
),
child: Center(
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: maxContentWidth),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 15.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// ...
],
),
),
),
),
),
);
},
),
),
참고
- Claude 3.7 Sonnet 답변 참고함
- LayoutBuilder