Flutter GridView(그리드뷰)

`GridView`는 Flutter에서 2차원 격자형 레이아웃을 만드는 데 사용되는 위젯입니다. 수직 및 수평 스크롤이 가능하며, 일반적으로 많은 수의 항목을 보기 좋게 배치할 때 사용됩니다. `GridView`는 여러 생성자를 통해 다양한 방식으로 사용될 수 있습니다. 주요 생성자 1. GridView()   – 기본 생성자입니다. 직접 아이템을 추가하여 그리드를 만듭니다. 2. GridView.builder()   – 항목이 동적으로 생성되도록 설정할 수 있는 생성자입니다. 많은 데이터 항목을 효율적으로 렌더링할 때 사용합니다. 3. GridView.count()   – 고정된 개수의 열을 가지는 그리드를 만들 때 사용합니다. 4. GridView.extent()   – 각 항목의 최대 크기를 설정하여 그리드를 만들 때 사용합니다. 주요 속성 – children: `GridView`에 추가할 위젯 목록을 설정합니다.– itemCount: `GridView.builder`에서 표시할 항목 수를 설정합니다.– itemBuilder: `GridView.builder`에서 각 항목을 …

Flutter ListView(리스트뷰)

`ListView`는 Flutter에서 스크롤 가능한 목록을 만드는 데 사용되는 매우 유용한 위젯입니다. 수직 또는 수평으로 아이템들을 나열할 수 있으며, 많은 양의 데이터를 효율적으로 표시하는 데 적합합니다. `ListView`는 여러 생성자를 통해 다양한 방식으로 사용될 수 있습니다. 주요 생성자 1. ListView()   – 기본 생성자입니다. 직접 아이템을 추가하여 리스트를 만듭니다.2. ListView.builder()   – 항목이 동적으로 생성되도록 설정할 수 있는 생성자입니다. 많은 데이터 항목을 효율적으로 렌더링할 때 사용합니다.3. ListView.separated()   – 항목 사이에 분리자를 추가할 수 있는 생성자입니다.4. ListView.custom()   – 커스텀 방식으로 `ListView`를 생성할 때 사용합니다. 주요 속성 – children: `ListView`에 추가할 위젯 목록을 설정합니다.– itemCount: `ListView.builder`에서 표시할 항목 수를 설정합니다.– itemBuilder: `ListView.builder`에서 각 항목을 렌더링하는 방법을 설정합니다.– …

Flutter layout & align

Flutter layout & align (레이아웃 및 정렬) Flutter에서 레이아웃을 구성할 때 유용한 위젯들인 `Align`, `Padding`, `Center`, `Expanded`, `Spacer`에 대해 각각 설명하겠습니다. ▶ Align `Align` 위젯은 자식 위젯을 정렬하는 데 사용됩니다. 부모 위젯 내에서 자식 위젯의 위치를 지정할 수 있습니다. – 속성  – `alignment`: 자식 위젯의 위치를 지정하는 속성입니다. `Alignment` 클래스의 값을 사용합니다.  – `widthFactor` 및 `heightFactor`: 자식 위젯의 너비와 높이를 조정할 때 사용하는 배율 값입니다. 설정하지 않으면 자식 위젯의 크기에 맞춰집니다. – 예제 위 예제는 컨테이너를 부모 위젯의 오른쪽 상단에 배치합니다. ▶ Padding `Padding` 위젯은 자식 위젯 주위에 패딩(여백)을 추가하는 데 사용됩니다. – 속성  – `padding`: `EdgeInsets` 클래스를 사용하여 각 방향에 대한 패딩 값을 지정합니다. – 예제 위 예제는 텍스트 주위에 16픽셀의 패딩을 추가합니다. ▶ Center `Center` 위젯은 자식 위젯을 부모 위젯의 중앙에 배치하는 데 사용됩니다. – 예제 Center(  child: Text(‘Hello, World!’),) 위 예제는 텍스트를 부모 위젯의 중앙에 배치합니다. …

Flutter Stack

`Stack`은 Flutter에서 여러 위젯을 서로 겹쳐서 배치할 수 있게 해주는 위젯입니다. `Stack`은 기본적으로 자식 위젯을 겹쳐서 쌓아 올리며, 각 위젯의 위치를 `Positioned` 위젯을 사용하여 조정할 수 있습니다. `Stack`은 Z축을 따라 자식 위젯을 배치하며, 첫 번째 자식이 가장 아래에, 마지막 자식이 가장 위에 위치하게 됩니다. 주요 속성 – alignment: `Stack` 내에서 자식 위젯들의 기본 정렬을 설정합니다. 기본값은 `Alignment.topLeft`입니다.– children: `Stack`에 추가할 자식 위젯들의 목록을 설정합니다.– fit: 자식 위젯의 크기를 설정하는 방법을 정의합니다. `StackFit.loose`(기본값)과 `StackFit.expand`가 …

Flutter Column & Row

`Column`과 `Row`는 Flutter에서 수직 및 수평으로 위젯을 배열할 수 있는 레이아웃 위젯입니다. 이 두 위젯은 자식 위젯들을 정렬하고 배치하는 데 중요한 역할을 합니다. ### Column `Column` 위젯은 자식 위젯들을 수직으로 배열합니다. 주요 속성은 다음과 같습니다: – **children**: 배열할 자식 위젯들의 리스트입니다.– **mainAxisAlignment**: 주축(세로축)에서 자식 위젯들의 정렬 방식을 설정합니다.– **crossAxisAlignment**: 교차축(가로축)에서 자식 위젯들의 정렬 방식을 설정합니다.– **mainAxisSize**: 주축에서의 크기를 설정합니다. ### Row `Row` 위젯은 자식 위젯들을 수평으로 배열합니다. 주요 속성은 Column과 유사합니다: – **children**: 배열할 자식 위젯들의 리스트입니다.– **mainAxisAlignment**: 주축(가로축)에서 자식 위젯들의 정렬 방식을 설정합니다.– **crossAxisAlignment**: 교차축(세로축)에서 자식 위젯들의 정렬 방식을 설정합니다.– **mainAxisSize**: 주축에서의 크기를 설정합니다. ### 주요 속성 설명 – **MainAxisAlignment**  – `MainAxisAlignment.start`: 자식 위젯들을 시작 부분에 정렬합니다.  – `MainAxisAlignment.end`: 자식 위젯들을 끝 부분에 정렬합니다.  – `MainAxisAlignment.center`: 자식 위젯들을 중앙에 정렬합니다.  – `MainAxisAlignment.spaceBetween`: 자식 위젯들 사이에 동일한 간격을 둡니다.  – `MainAxisAlignment.spaceAround`: 자식 위젯들 사이와 양 끝에 동일한 간격을 둡니다.  – `MainAxisAlignment.spaceEvenly`: 자식 위젯들 사이에 동일한 간격을 두고, 양 끝에도 같은 간격을 둡니다. – **CrossAxisAlignment**  – `CrossAxisAlignment.start`: 교차축의 시작 부분에 정렬합니다.  – `CrossAxisAlignment.end`: 교차축의 끝 부분에 정렬합니다.  – `CrossAxisAlignment.center`: 교차축의 중앙에 정렬합니다.  – `CrossAxisAlignment.stretch`: 교차축을 채우도록 자식 위젯을 확장합니다. – **MainAxisSize**  – `MainAxisSize.max`: 주축의 최대 크기를 차지합니다.  – `MainAxisSize.min`: 주축의 최소 크기를 차지합니다. ### 예제 코드 아래 예제 코드는 `Column`과 `Row`의 기본 사용법을 보여줍니다. ### 코드 설명 – **Column 사용**  – `mainAxisAlignment`를 `MainAxisAlignment.center`로 설정하여 자식 위젯들을 수직 중앙에 정렬합니다.  – `crossAxisAlignment`를 `CrossAxisAlignment.center`로 설정하여 자식 위젯들을 가로 중앙에 정렬합니다.  – 세 개의 `Text` 위젯을 자식으로 추가하여 수직으로 배치합니다. – **Row 사용**  – `mainAxisAlignment`를 `MainAxisAlignment.spaceEvenly`로 설정하여 자식 위젯들 사이에 동일한 간격을 둡니다.  – 세 개의 `Text` 위젯을 자식으로 추가하여 수평으로 배치합니다. 이 예제는 `Column`과 `Row` 위젯을 사용하여 자식 위젯들을 수직 및 수평으로 정렬하는 방법을 보여줍니다. `mainAxisAlignment`와 `crossAxisAlignment`를 통해 정렬 방식을 설정할 수 있으며, 다양한 레이아웃을 손쉽게 구성할 수 있습니다. user interface column & row with abstract image do draw in web screen

Flutter Contianer

`Container`는 Flutter에서 매우 유용한 위젯으로, 레이아웃을 구성하고, 배경 색상이나 크기, 패딩 등을 설정하는 데 사용됩니다. `Container`는 여러 속성을 가지고 있어 다양한 역할을 수행할 수 있습니다. 주요 속성 1. **child**   – `Container` 안에 배치될 단일 자식 위젯을 지정합니다.   2. **padding**   – `Container`의 내용 주위에 여백을 설정합니다.   – `EdgeInsets` 클래스를 사용하여 설정합니다.   3. **margin**   – `Container` 주위의 외부 여백을 설정합니다.   – `EdgeInsets` 클래스를 사용하여 설정합니다.   4. **color**   – `Container`의 배경 색상을 설정합니다.   5. **decoration**   – `Container`의 외관을 설정합니다. `BoxDecoration` 클래스를 사용하여 배경 이미지, 경계선, 그림자 등을 추가할 수 있습니다.   6. **width** 및 **height**   – `Container`의 너비와 높이를 설정합니다.   7. **alignment**   – 자식 위젯의 정렬을 설정합니다. 8. **constraints**   – `Container`의 크기 제약 조건을 설정합니다. `BoxConstraints` 클래스를 사용합니다. 예제 코드`Container`의 기본 사용법과 다양한 속성을 설정하는 예제를 통해 이해를 돕겠습니다. 코드 설명 – `Container` 위젯을 사용하여 다양한 속성을 설정합니다.– `width`와 `height`를 200으로 설정하여 크기를 지정합니다.– `padding`과 `margin`을 각각 `EdgeInsets.all(20)`으로 설정하여 내부 여백과 외부 여백을 추가합니다.– `alignment`를 `Alignment.center`로 설정하여 자식 위젯을 중앙에 정렬합니다.– `decoration` 속성을 사용하여 `BoxDecoration` 클래스로 배경 색상, 테두리, 그림자를 설정합니다.  – `color`를 `Colors.blue`로 설정하여 배경 색상을 파란색으로 지정합니다.  – `borderRadius`를 `BorderRadius.circular(10)`으로 설정하여 모서리를 둥글게 만듭니다.  – `border`를 사용하여 검은색 테두리를 추가합니다.  – `boxShadow`를 사용하여 그림자를 추가합니다.– 자식 위젯으로 `Text`를 추가하여 `Container` 안에 텍스트를 표시합니다. 이 예제는 `Container`의 다양한 속성을 어떻게 설정하는지 보여줍니다. `Container`는 매우 유연한 위젯으로, 레이아웃을 구성할 때 유용하게 사용할 수 있습니다.

Flutter Scaffold

`Scaffold`는 Flutter에서 화면의 기본적인 구조를 만드는 데 사용되는 위젯입니다. 앱바, 드로어, 플로팅 액션 버튼, 바텀 네비게이션 바 등을 포함하는 다양한 UI 요소를 쉽게 구성할 수 있도록 도와줍니다. `Scaffold`는 Material Design의 주요 레이아웃 구조를 제공합니다. ▶ 주요 속성 – appBar: 화면 상단에 표시되는 앱바를 설정합니다. `AppBar` 위젯을 사용합니다.– body: 주요 콘텐츠가 위치하는 영역을 설정합니다.– floatingActionButton: 화면 오른쪽 하단에 떠 있는 액션 버튼을 설정합니다. `FloatingActionButton` …

Flutter AppBar

`AppBar`는 Flutter에서 화면 상단에 표시되는 제목 바를 제공하는 위젯입니다. `AppBar`는 기본적인 타이틀, 로고, 액션 아이콘 등을 포함할 수 있으며, 복잡한 레이아웃도 지원합니다. 주로 `Scaffold` 위젯의 `appBar` 속성에 사용됩니다. 주요 속성 – title: 앱바의 제목을 설정합니다. 보통 `Text` 위젯을 사용합니다.– leading: 앱바의 왼쪽에 표시되는 위젯을 설정합니다. 보통 메뉴 버튼이나 뒤로 가기 버튼으로 사용됩니다.– actions: 앱바의 오른쪽에 표시되는 위젯 …

Flutter StatelessWidget

Flutter에서 `StatelessWidget`은 상태가 없는 위젯입니다. 이 위젯은 한 번 생성되면 변경되지 않는 값들을 렌더링하는 데 사용됩니다. 즉, 상태나 데이터가 변하지 않으므로 빌드 메서드가 다시 호출되지 않습니다. ### 예제 코드 간단한 `StatelessWidget` 예제를 통해 설명해보겠습니다. 이 예제는 단순한 텍스트 메시지를 화면에 표시하는 애플리케이션입니다. ### 코드 설명 1. **MyApp 클래스 (StatelessWidget)**:   – `MyApp`은 `StatelessWidget`을 상속합니다.   – `build` 메서드는 위젯 트리를 빌드하며, 여기서 `MaterialApp`을 반환합니다. 2. **MyHomePage 클래스 (StatelessWidget)**:   – `MyHomePage` 역시 `StatelessWidget`을 상속합니다.   – `build` 메서드는 UI를 정의하며, `Scaffold`를 반환합니다. 이 `Scaffold`는 앱의 기본적인 레이아웃 구조를 제공합니다.   – `AppBar`는 상단에 표시되는 앱바를 정의하고, `Center` 위젯은 자식을 중앙에 배치합니다.   – `Text` 위젯은 화면에 “Hello, Flutter!” 메시지를 표시합니다. `StatelessWidget`은 상태를 가지지 않기 때문에 간단한 UI를 정의할 때 주로 사용됩니다. 상태나 데이터가 변경될 필요가 없을 때 적합합니다. ### StatelessWidget의 특징 – **불변성**: `StatelessWidget`의 속성은 변경되지 않습니다. 위젯이 생성된 후에는 상태를 변경할 수 없습니다.– **간결성**: 상태 관리가 필요 없으므로 코드가 간결합니다.– **성능**: 상태가 변경되지 않기 때문에 성능 최적화에 유리합니다. `StatelessWidget`은 정적인 UI를 구성할 때 사용하기 적합합니다. 데이터나 상태가 변하지 않는 부분에 적합하며, 변동이 필요한 경우 `StatefulWidget`을 사용합니다.