HOME
NOTE

LayoutBuilder로 SingleChildScrollView에서 가운데 정렬하기

CREATED
2025. 3. 23. 오후 2:56:03
UPDATED
2025. 3. 23. 오후 3:05:35
TAGS
#Flutter

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: [
		     // ...
                  ],
                ),
              ),
            ),
          ),
        ),
      );
    },
  ),
),

참고