Menu
CoddyTech

오버플로 해결: 줄바꿈

Coddy Flutter 여정의 화면 크기에 맞는 레이아웃 섹션에 포함된 레슨. 30개 중 8번째.

일부 행에는 문장의 단어처럼 흐르도록 배치해야 하는 항목이 들어 있습니다. 태그, 필터, 칩이 여기에 해당합니다. 한 줄에 담기에는 항목이 너무 많으면 Row의 오른쪽으로 넘칩니다.

Wrap은 같은 children: 목록을 사용하며, 다음 자식이 해당 줄에 들어가지 않으면 그 아래에 새 줄을 시작합니다.

Wrap(
  children: [
    for (final tag in tags) Text(tag),
  ],
)

이것은 오버플로를 해결하는 세 번째 방법입니다. 자식 하나의 크기를 줄여야 할 때는 Expanded를, 페이지가 화면보다 길 때는 스크롤 뷰를, 자식들이 다음 줄로 이동해야 할 때는 Wrap을 사용하세요.

Wrap은 각 자식이 요청한 크기를 유지합니다. 자식들을 절대로 좁히지 않고 아래쪽으로 이동시키기만 합니다.

challenge icon

챌린지

쉬움

태그가 오른쪽으로 넘칩니다. 문단의 단어처럼 필요한 만큼 여러 줄로 흐르도록 만드세요.

직접 해보기

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final tags = ['Dart', 'Flutter', 'Mobile', 'Design', 'Games', 'Web'];
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Interests')),
        body: Padding(
          padding: const EdgeInsets.all(16),
          child: Row(
            children: [
              for (final tag in tags)
                Container(
                  width: 110,
                  height: 40,
                  decoration: BoxDecoration(
                    color: Colors.purple.shade100,
                    borderRadius: BorderRadius.circular(20),
                  ),
                  child: Center(child: Text(tag)),
                ),
            ],
          ),
        ),
      ),
    );
  }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

화면 크기에 맞는 레이아웃의 모든 레슨

직접 연습해 보세요: 온라인 Flutter 컴파일러