오버플로 해결: 줄바꿈
Coddy Flutter 여정의 화면 크기에 맞는 레이아웃 섹션에 포함된 레슨. 30개 중 8번째.
일부 행에는 문장의 단어처럼 흐르도록 배치해야 하는 항목이 들어 있습니다. 태그, 필터, 칩이 여기에 해당합니다. 한 줄에 담기에는 항목이 너무 많으면 Row의 오른쪽으로 넘칩니다.
Wrap은 같은 children: 목록을 사용하며, 다음 자식이 해당 줄에 들어가지 않으면 그 아래에 새 줄을 시작합니다.
Wrap(
children: [
for (final tag in tags) Text(tag),
],
)이것은 오버플로를 해결하는 세 번째 방법입니다. 자식 하나의 크기를 줄여야 할 때는 Expanded를, 페이지가 화면보다 길 때는 스크롤 뷰를, 자식들이 다음 줄로 이동해야 할 때는 Wrap을 사용하세요.
Wrap은 각 자식이 요청한 크기를 유지합니다. 자식들을 절대로 좁히지 않고 아래쪽으로 이동시키기만 합니다.
챌린지
쉬움태그가 오른쪽으로 넘칩니다. 문단의 단어처럼 필요한 만큼 여러 줄로 흐르도록 만드세요.
직접 해보기
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)),
),
],
),
),
),
);
}
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
화면 크기에 맞는 레이아웃의 모든 레슨
직접 연습해 보세요: 온라인 Flutter 컴파일러