Scaffold
- 화면 뼈대 역할
- 기본적으로 AppBar body floatingActionButton 같은걸 배치해줌
return Scaffold(
appBar: AppBar(title: const Text('일기')),
body: Column(
children: [
TableCalendar(
firstDay: DateTime(2000),
lastDay: DateTime(2100),
focusedDay: _focusedDay,
selectedDayPredicate: (day) => isSameDay(day, _selectedDay),
onDaySelected: (selectedDay, focusedDay) {
Navigator
- 페이지 전환 담당
- push 새 페이지로 이동
- pop 이전 페이지로 이동
onDaySelected: (selectedDay, focusedDay) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DiaryWritePage(selectedDate: selectedDay),
),
);
},
child - 하나의 위젯만 자식으로 가짐
children - 여러개의 위젯을 자식으로 가짐
padding
- 상하좌우 x 픽셀의 여백
padding: const EdgeInsets.all(16.0),
expanded
- 공간을 꽉 채우게할떄 사용
sizeBox
- 딱 정해진 크기의 공간 만들기
- 위젯 사이 간격 띄우기
TextEditingController
- Textfield에 입력된 값 가져오기
ListView
- 여러개의 위젯을 스크롤 가능하게 정렬
ListView(
children: [
Text("첫 번째"),
Text("두 번째"),
Text("세 번째"),
],
)
콜백 함수가 필요한 이유
- 이벤트는 언제 일어날지 모름 -> 미리 함수를 등록만 해둠
MaterialPageRoute |
Material 디자인 스타일로 페이지 전환하는 라우트 객체 |