일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Flutter
- Maui
- GitHub
- MVVM
- 오류
- MS-SQL
- Firebase
- 파이어베이스
- Binding
- Animation
- page
- JavaScript
- 깃허브
- 애니메이션
- 자바스크립트
- typescript
- React JS
- spring boot
- 함수
- 바인딩
- listview
- 플러터
- 닷넷
- 마우이
- AnimationController
- MSSQL
- HTML
- 리엑트
- .NET
- db
Archives
- Today
- Total
개발노트
37.[Flutter] LayoutBuilder 로 위젯 크기 가져오기 (vs MediaQuery) 본문
반응형
LayoutBuilder
LayoutBuilder는 부모 위젯의 제약 조건(constraints)을 사용하여 자식 위젯의 크기와 위치를 조절하는데 사용됩니다. 이 위젯은 주로 부모 위젯이 자식 위젯에 대한 크기나 제약 조건을 지정하는 경우에 유용합니다. LayoutBuilder의 자식 위젯은 BuildContext와 BoxConstraints를 매개변수로 받아 해당 제약 조건 내에서 레이아웃을 조정할 수 있습니다.
LayoutBuilder 와 MediaQuery 비교
MediaQuery는 디바이스의 화면 크기와 특성을 얻는데 사용됩니다. 이는 앱의 반응형 디자인 및 다양한 화면 크기에 대응하는데 유용합니다. MediaQuery를 사용하면 디바이스의 화면 크기, 화면 밀도, 방향 등과 같은 정보를 얻을 수 있습니다. 이 정보를 기반으로 앱의 레이아웃 및 스타일을 조정할 수 있습니다.
따라서, LayoutBuilder는 위젯의 크기를 가져오고, MediaQuery는 단말기의 화면 크기를 가져오기 때문에 목적에 맞게 사용되어야합니다.
class LayoutBuilderCodeLab extends StatelessWidget {
const LayoutBuilderCodeLab({super.key});
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return Scaffold(
body: LayoutBuilder(
builder: (context, constraints) => Container(
color: Colors.teal,
width: constraints.maxWidth,
height: constraints.maxHeight,
child: Center(
child: Text(
"${constraints.maxWidth} /// ${size.width}",
style: TextStyle(fontSize: constraints.maxWidth > 700 ? 70 : 30),
),
),
),
),
);
}
}
constraints.maxWidth 으로 위젯의 너비를 가져옵니다.
constraints.maxHeight 으로 위젯의 높이를 가져옵니다.
반응형
'앱 개발 > Flutter' 카테고리의 다른 글
39. [Flutter] Google Font 사용하기(TextStyle 통일하기 + Typography) (1) | 2023.10.18 |
---|---|
38. [Flutter] 다크모드, 라이트모드 테마 커스텀 하기(with ThemeMode) (0) | 2023.10.18 |
36. [Flutter] ListWheelScrollView 회전하는 리스트뷰 만들기 (2) | 2023.10.11 |
35. [Flutter] NestedScrollView 로 여러개 스크롤 하나로 제어하기(with Sliver) (0) | 2023.10.11 |
34. [Flutter] CustomScrollView 위젯 (2) | 2023.10.05 |
Comments