Search

MaterialApp

MaterialApp

Material Design을 기반으둜 μ„€κ³„λœ, ν”ŒλŸ¬ν„°μ—μ„œ μ œκ³΅ν•˜λŠ” μ΅œμƒμœ„ μœ„μ ―
μ•±μ˜ κΈ°λ³Έ μ„€μ •κ³Ό κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, μ•±μ˜ 전체적인 λ””μžμΈμ„ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

κΈ°λ³Έ μ„€μ •

β€’
제λͺ©:Β μ•±μ˜ 제λͺ©μ„ μ„€μ •ν•©λ‹ˆλ‹€.
β€’
ν…Œλ§ˆ:Β μ•±μ˜ 전체적인 λ””μžμΈμ„ κ΄€λ¦¬ν•©λ‹ˆλ‹€.
β€’
νŽ˜μ΄μ§€ 이동 경둜:Β μ•±μ˜ νŽ˜μ΄μ§€ 이동 경둜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
β€’
디버그 λͺ¨λ“œ: 디버그 λͺ¨λ“œλ₯Ό ν™œμ„±ν™”ν•©λ‹ˆλ‹€.
Material Design : κ΅¬κΈ€μ—μ„œ μ œκ³΅ν•˜λŠ” λ””μžμΈ κ°€μ΄λ“œλΌμΈμœΌλ‘œ, μ•±μ˜ μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚€κΈ° μœ„ν•œ 일련의 지침을 μ œκ³΅ν•©λ‹ˆλ‹€.

MaterialApp 의 μ£Όμš” μœ„μ ―

μœ„μ ―
μ„€λͺ…
Scaffold
μ•±μ˜ κΈ°λ³Έ ꡬ쑰λ₯Ό μ œκ³΅ν•˜λŠ” μœ„μ ―
AppBar
μ•±μ˜ 상단에 ν‘œμ‹œλ˜λŠ” μœ„μ ―
Body
μ•±μ˜ μ£Όμš” λ‚΄μš©μ„ ν¬ν•¨ν•˜λŠ” μœ„μ ―
BottomNavigationBar
μ•±μ˜ ν•˜λ‹¨μ— ν‘œμ‹œλ˜λŠ” μœ„μ ―
FloatingActionButton
화면에 λ– λ‹€λ‹ˆλŠ” λ²„νŠΌ
TabBar
탭을 μ œκ³΅ν•˜λŠ” μœ„μ ―

MaterialApp

μ•±μ˜ κΈ°λ³Έ μ„€μ •κ³Ό ν…Œλ§ˆ(λ””μžμΈ)λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ΅œμƒμœ„ μœ„μ ―

속성

속성
μ„€λͺ…
title
μ•±μ˜ 제λͺ©μ„ μ„€μ •ν•©λ‹ˆλ‹€.
theme
μ•±μ˜ ν…Œλ§ˆλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
routes
μ•±μ˜ νŽ˜μ΄μ§€ 이동 경둜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
initialRoute
앱을 처음 μ‹œμž‘ν•  λ•Œ ν‘œμ‹œν•  νŽ˜μ΄μ§€λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
debugShowCheckedModeBanner
디버그 λͺ¨λ“œλ₯Ό ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

Scaffold

μ•±μ˜ κΈ°λ³Έ ꡬ쑰λ₯Ό μ œκ³΅ν•˜λŠ” μœ„μ ―
AppBar, Body, BottomNavigationBar 등을 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.

속성

속성
μ„€λͺ…
appBar
μ•±λ°”λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
body
μ•±μ˜ μ£Όμš” λ‚΄μš©μ„ μ„€μ •ν•©λ‹ˆλ‹€.
floatingActionButton
ν”Œλ‘œνŒ… μ•‘μ…˜ λ²„νŠΌμ„ μ„€μ •ν•©λ‹ˆλ‹€.
bottomNavigationBar
λ°”ν…€ λ„€λΉ„κ²Œμ΄μ…˜ λ°”λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
tabBar
νƒ­ λ°”λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

AppBar

μ•±μ˜ 상단에 ν‘œμ‹œλ˜λŠ” μœ„μ ―
제λͺ©, 메뉴, μ•±λ°” λ²„νŠΌ 등을 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.

속성

속성
μ„€λͺ…
title
μ•±μ˜ 제λͺ©μ„ μ„€μ •ν•©λ‹ˆλ‹€.
leading
μ•±λ°”μ˜ μ™Όμͺ½μ— ν‘œμ‹œλ˜λŠ” μœ„μ ―μ„ μ„€μ •ν•©λ‹ˆλ‹€.
actions
μ•±λ°”μ˜ 였λ₯Έμͺ½μ— ν‘œμ‹œλ˜λŠ” μœ„μ ―μ„ μ„€μ •ν•©λ‹ˆλ‹€.
backgroundColor
μ•±λ°”μ˜ 배경색을 μ„€μ •ν•©λ‹ˆλ‹€.
brightness
μ•±λ°”μ˜ 밝기λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
elevation
μ•±λ°”μ˜ 높이λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

Body

μ•±μ˜ μ£Όμš” λ‚΄μš©μ„ ν¬ν•¨ν•˜λŠ” μœ„μ ―

속성

속성
μ„€λͺ…
child
μ•±μ˜ μ£Όμš” λ‚΄μš©μ„ μ„€μ •ν•©λ‹ˆλ‹€.

BottomNavigationBar

μ•±μ˜ ν•˜λ‹¨μ— ν‘œμ‹œλ˜λŠ” μœ„μ ―
:Β μ•±μ˜ ν•˜λ‹¨μ— ν‘œμ‹œλ˜λŠ” μœ„μ ―μž…λ‹ˆλ‹€. μ•±μ˜ μ£Όμš” κΈ°λŠ₯에 λŒ€ν•œ λ²„νŠΌμ„ 포함할 μˆ˜μžˆμŠ΅λ‹ˆλ‹€.

속성

속성
μ„€λͺ…
items
λ°”ν…€ λ„€λΉ„κ²Œμ΄μ…˜ 바에 ν‘œμ‹œλ˜λŠ” ν•­λͺ©μ„ μ„€μ •ν•©λ‹ˆλ‹€.
currentIndex
λ°”ν…€ λ„€λΉ„κ²Œμ΄μ…˜ λ°”μ˜ ν˜„μž¬ ν•­λͺ©μ˜ 인덱슀λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

FloatingActionButton

ν™”λ©΄ μœ„μ— λ– μžˆλŠ” λ²„νŠΌ μœ„μ ―

속성

속성
μ„€λͺ…
child
λ²„νŠΌμ˜ μ•„μ΄μ½˜μ΄λ‚˜ 이미지λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
onPressed
λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„ λ•Œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

TabBar

탭을 μ œκ³΅ν•˜λŠ” μœ„μ ―
속성
μ„€λͺ…
tabs
탭을 μ„€μ •ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œμ½”λ“œ

import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( title: 'My App', home: Scaffold( appBar: AppBar( title: Text('My App'), ), body: TabBarView( children: [ Container(color: Colors.red), Container(color: Colors.green), ], ), bottomNavigationBar: BottomNavigationBar( items: [ BottomNavigationBarItem( icon: Icon(Icons.home), label: 'Home', ), BottomNavigationBarItem( icon: Icon(Icons.search), label: 'Search', ), ], currentIndex: 0, onTap: (int index) { // 탭이 변경될 λ•Œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜ }, ), floatingActionButton: FloatingActionButton( child: Icon(Icons.add), onPressed: () { // ν”Œλ‘œνŒ… μ•‘μ…˜ λ²„νŠΌμ΄ 클릭될 λ•Œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜ }, ), ), ); } }
Dart
볡사