ex12. Flexible과 Expanded
2024. 6. 12. 14:52ㆍFlutter
✅ Flexible vs Expanded
import 'package:flutter/material.dart';
class ExFlexible extends StatelessWidget {
const ExFlexible({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
children: [
// 1. Flexible과 Expanded를 사용하지 않았을 때!
SizedBox(height: 20,),
Text('Flexible, expanded 미사용'),
SizedBox(height: 20,),
Row(
children: [
Container(
width: 300,
height: 50,
color: Colors.red,
),
Container(
width: 300, // 크기가 넘치기 때문에 오류가 뜸!
height: 50,
color: Colors.black87,
),
],
),
SizedBox(height: 50,), // 여백
// 2. FlexFit.loose를 사용했을 때!
Text('Flexible 사용'),
SizedBox(height: 20,),
Row(
children: [
// Flexible은 하위 위젯을 가지고 있으며, Row나 Column 안에서만 생성이 가능하다!
Flexible( // Row 안에서 생성
fit: FlexFit.loose, // loose(비율)하게 요소를 주겠다
// ctrl + space : 요소 확인
child: Container( // Flexible 하위 위젯
width: 300,
height: 50,
color: Colors.red,
),
),
Flexible( // Flexible은 비율로 주기 때문에 오류X
// 기본 세팅 값 : FlexFit.loose,
// fit: FlexFit.loose, // loose : 남은 여백을 가능하게 줌
child: Container(
width: 100,
height: 50,
color: Colors.black87,
),
)
],
),
SizedBox(height: 50,),
// 3. FlexFit.tight를 사용했을 때!
Text('FlexFit.tight 사용'),
SizedBox(height: 20,),
Row(
children: [
Flexible(
fit: FlexFit.tight, // 여백 없이 무조건 꽉 채워서!
child: Container(
width: 300,
height: 50,
color: Colors.red,
),
),
Flexible(
fit: FlexFit.tight,
child: Container(
width: 100,
height: 50,
color: Colors.black87,
),
)
],
),
SizedBox(height: 50,),
// 3. Expanded를 사용했을 때!
Text('Expanded 사용'),
SizedBox(height: 20,),
Row(
children: [
Expanded( // 여백을 남겨두지 않고 비율대로 출력하겠다!
flex: 1,
child: Container(
width: 300,
height: 50,
color: Colors.red,
),
),
Expanded(
flex: 2,
child: Container(
width: 100,
height: 50,
color: Colors.black87,
),
),
Expanded(
flex: 1,
child: Container(
width: 100,
height: 50,
color: Colors.blue,
),
),
],
),
],
),
),
);
}
}
'Flutter' 카테고리의 다른 글
ex14. Keypad (0) | 2024.06.12 |
---|---|
ex13. Banner 실습 (0) | 2024.06.12 |
ex11. SizedBox 실습 (0) | 2024.06.12 |
ex10. SizedBox (0) | 2024.06.12 |
ex09. Container 실습 (0) | 2024.06.12 |