Flutter에서 ExtendBodyBehindAppBar 사용하기
Flutter에서 ExtendBodyBehindAppBar 사용하기
Flutter에서 Scaffold
위젯은 앱의 기본 레이아웃을 제공합니다. 이 레이아웃에는 AppBar
, 본문 콘텐츠, 그리고 필요에 따라 FloatingActionButton
과 같은 다른 UI 요소들이 포함됩니다. 기본적으로 본문 콘텐츠는 AppBar
아래에 렌더링됩니다. 하지만 ExtendBodyBehindAppBar
속성을 사용하면 본문 콘텐츠가 AppBar
뒤로 확장되도록 할 수 있습니다. 이를 통해 시각적으로 매력적인 레이아웃을 만들 수 있습니다.
ExtendBodyBehindAppBar 사용 예시
다음 예제는 ExtendBodyBehindAppBar
속성을 사용하여 본문 콘텐츠를 AppBar
뒤로 확장하는 방법을 보여줍니다.
Dart
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
32
33
34
35
36
37
38
39
40
41
42
import 'package:flutter/material.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
extendBodyBehindAppBar: true, // 본문 콘텐츠를 AppBar 뒤로 확장
appBar: AppBar(
title: Text('ExtendBodyBehindAppBar Example'),
backgroundColor: Colors.transparent, // AppBar의 배경색을 투명하게 설정
elevation: 0, // AppBar의 그림자 효과 제거
),
body: Stack(
children: [
Image.network(
'https://example.com/image.jpg', // 전체 화면 배경 이미지
fit: BoxFit.cover,
height: double.infinity,
),
SingleChildScrollView(
padding: EdgeInsets.only(top: 150), // AppBar 높이만큼 패딩 추가
child: Column(
children: [
Card(
child: ListTile(
title: Text('List Item 1'),
),
),
Card(
child: ListTile(
title: Text('List Item 2'),
),
),
// 더 많은 콘텐츠 추가 가능
],
),
),
],
),
);
}
}
위 예제에서는 다음과 같은 단계를 따릅니다:
Scaffold
위젯의extendBodyBehindAppBar
속성을true
로 설정합니다.AppBar
의backgroundColor
를Colors.transparent
로 설정하고elevation
을0
으로 설정하여 투명한AppBar
를 만듭니다.body
에Stack
위젯을 사용하여 전체 화면 배경 이미지와 본문 콘텐츠를 겹치게 합니다.SingleChildScrollView
를 사용하여 본문 콘텐츠를 스크롤 가능하게 만듭니다.SingleChildScrollView
에padding
을 추가하여 본문 콘텐츠가AppBar
아래에서 시작하도록 합니다.
이 예제의 결과는 다음과 같습니다:
AppBar
는 투명하게 렌더링되며, 본문 콘텐츠가 뒤에서 보입니다.- 전체 화면 배경 이미지가 표시됩니다.
- 본문 콘텐츠는
AppBar
아래에서 시작하며, 스크롤 가능합니다.
ExtendBodyBehindAppBar의 추가 고려사항
ExtendBodyBehindAppBar
를 사용할 때는 다음 사항을 고려해야 합니다:
- 안전 영역 고려: 일부 기기에서는 노치(notch) 또는 카메라 컷아웃 등의 안전 영역이 있습니다. 이러한 영역을 피하기 위해
SafeArea
위젯을 사용해야 합니다. - 스크롤 동작 조정: 본문 콘텐츠가
AppBar
뒤로 확장되므로, 스크롤 동작을 원활하게 하기 위해 추가 조정이 필요할 수 있습니다. - AppBar 스타일링:
ExtendBodyBehindAppBar
를 사용할 때는AppBar
의 스타일링을 조정해야 할 수 있습니다. 예를 들어, 배경색과 그림자 효과를 제거하거나 텍스트 색상을 변경해야 할 수 있습니다.
결론
Flutter의 ExtendBodyBehindAppBar
속성은 본문 콘텐츠를 AppBar
뒤로 확장하여 시각적으로 매력적인 레이아웃을 만들 수 있습니다. 이 기능을 사용할 때는 안전 영역, 스크롤 동작, 그리고 AppBar
스타일링을 고려해야 합니다. 적절한 예제와 설명을 통해 이 기능을 효과적으로 활용할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.