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
볡μ¬