
위젯은 플러터 앱의 모든 시각적 요소를 표현합니다.
Button, Text, Image 등 사용자 인터페이스의 모든 요소는 Widget로 표현됩니다.
flutter는 모든것이 Widget요소입니다.
플러터에서는 크게 두 가지 위젯을 사용한다.
StatelessWidget
-Text
-Image
-Container
-Row
-Column
-ListView
등등
이 상속 트리에서 StatelessWidget은 최상위 부모 클래스입니다.
Object
ㄴDiagnosticable
ㄴDiagnosticableTree
ㄴWidget
ㄴStatelessWidget
ㄴText
Text에 대해서 좀 더 자세하게 보시면 아래와 같습니다.
Object: 모든 플러터 객체의 기본 클래스입니다.
Diagnosticable: 진단 정보를 제공하기 위한 추상 클래스입니다.
DiagnosticableTree: 진단 정보를 트리 구조로 제공하기 위한 추상 클래스입니다.
Widget: 플러터의 위젯을 나타내기 위한 추상 클래스입니다.
StatelessWidget: 상태를 가지지 않는 위젯을 나타내기 위한 추상 클래스입니다.
Text: 텍스트를 나타내는 위젯입니다. 주어진 텍스트를 화면에 표시할 수 있습니다.
StatefulWidget
- TextButton
- IconButton
- Checkbox
- Radio
- TextFormField
- DropdownButton
이 상속 트리에서 StatefulWidget은 최상위 부모 클래스입니다.
StatefulWidget을 상속하는 다양한 클래스들이 있으며 여기에는
TextButton, IconButton, Checkbox, Radio, TextFormField, DropdownButton 등의 클래스가 포함됩니다.
그리고 TextButton 에 대해서 좀 더 자세하게 보시면 아래와 같습니다.
Object
ㄴDiagnosticable
ㄴDiagnosticableTree
ㄴWidget
ㄴStatefulWidget
ㄴMaterialButton
ㄴTextButton
Object: 모든 플러터 객체의 기본 클래스입니다.
Diagnosticable: 진단 정보를 제공하기 위한 추상 클래스입니다.
DiagnosticableTree: 진단 정보를 트리 구조로 제공하기 위한 추상 클래스입니다.
Widget: 플러터의 위젯을 나타내기 위한 추상 클래스입니다.
StatefulWidget: 상태를 가지는 위젯을 나타내기 위한 추상 클래스입니다. 내부적으로 State 객체를 가집니다.
MaterialButton: 마테리얼 디자인 스타일을 가지는 버튼 위젯을 나타냅니다. TextButton은 MaterialButton의 하위 클래스입니다.
TextButton: 텍스트를 보여주고 사용자 입력에 반응하는 버튼 위젯입니다. 일반적으로 눌렀을 때 어떤 작업을 수행하기 위해 사용됩니다.
b
flutter 앱에서 가장중요한 부분입니다.
앱의 상단 중단 하단으로 나누어 주는 위젯입니다.

appBar: 상단
body: 중단
bottomNavigationBar: 하단
Row()와 Column() 위젯 안에 쓸 수 있는 명령어를 소개하겠습니다.
-MainAxisAlignment.spaceEvenly // 모든 여백 동일하게 배치
-MainAxisAlignment.spaceBetween // 좌우 끝에 우선 배치
-MainAxisAlignment.spaceAround // 모든 여백 동일, 좌우 마지막 여백은 절반만큼 줍니다.
-MainAxisAlignment.start // 시작 부분에 모이게 합니다.
-MainAxisAlignment.end // 끝 부분에 모이게 합니다.
-MainAxisAlignment.center // 중간 부분에 모이게 합니다.
ex) 예시로 center 값을 줘봤다.

-CrossAxisAlignment.start //시작 부분에 모이게 합니다.
-CrossAxisAlignment.center // 중간 부분에 모이게 합니다.
-CrossAxisAlignment.end // 끝 부분에 모이게 합니다.
ex) 예시로 center 값을 줘봤다.

바깥여백에는 margin: 파라미터를 사용합니다.
안쪽여백에는 padding: 파라미터를 사용합니다.
여백 수치를 입력할때 사용하는 명령어
-EdgeInsets.all()
//.all()은 위,아래,왼쪽,오른쪽 전체 여백 이다.
-EdgeInsets.fromLTRB(0, 20, 0, 0)
// .fromLTRB(0,20,0,0)은 왼쪽0, 위 20, 오른쪽0, 아래0 만큼 여백을 줍니다.