250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- flutter
- designPattern
- Equatable
- pubspec.yaml
- enumerations
- UIAccessibility
- it
- pubspec
- IOS
- GIT
- SwiftGen
- ToDoRim
- dart
- github
- COMMIT
- Widget
- xcode
- keyWindow
- swiftlint
- toyproject
- tip
- OSLog
- Leetcode
- listview
- reetcode
- Extentsion
- basic
- Swift
- algorithm
- protocol
Archives
- Today
- Total
수니의 개발새발
[Flutter] ListView (1) 기본형 (with. LIst<Widget>) 본문
728x90
반응형
📌 이번 글은
기본형 ListView 를 만드는 방법입니다.
ListView
- 가장 일반적으로 사용되는 스크롤 위젯.
- 스크롤 방향으로 자식을 차례로 표시.
기본 class 정의
- 먼저 ListView 생성을 위해 필요한 기본 class 정의를 하겠습니다 :)
ListData 정의
- ListView에서 사용될 Data Class
// (c) BasicListData - ListView Data Class
class BasicListData {
final String title;
final String content;
BasicListData(this.title, this.content);
}
ListTail 정의
- ListView 자식에 넣어줄 ListTail 위젯 정의.
- ListTail 위젯은 정해진 규칙(?)이 있어, 추가 커스텀이 필요할 경우 다른 위젯들을 사용하여 커스텀 위젯을 만들면 좋을 것 같습니다.
// (c) BasicListTile - ListView Tile 위젯 반환.
class BasicListTile extends StatelessWidget {
BasicListTile(this._data);
final BasicListData _data;
@override
Widget build(BuildContext context) {
// (w) ListTile 기본형.
return ListTile(
title: Text(_data.title),
);
}
}
Default ListView (기본 생성자 사용)
- 자식의 명시적 List<Widget>을 사용하는 방법.
- ListView에 표시될 수 있는 모든 자식에 대해 작업을 수행해야 한다.
- 이 생성자는 자식 수가 적은 ListView에 적합.
class DefaultListPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
appBar: AppBar(
title: const Text('Default ListView Page'),
),
// Default ListView - List<Widget>을 사용한 기본형.
// 명시적으로 LIstView에 자식을 넣어줌.
child: ListView(
children: <Widget>[
BasicListTile(BasicListData('Swift', '애플의 iOS와 macOS를 위한 프로그래밍 언어')),
BasicListTile(BasicListData('Java', '객체 지향적 프로그래밍 언어')),
BasicListTile(BasicListData('Kotlin', 'JVM에서 동작하는 크로스 플랫폼 오픈소스 프로그래밍 언어')),
],
),
),
);
}
}
저는 이러한 기본형의 경우 명시적으로 데이터를 넣어주기 때문에,
데이터나 위젯이 변할 일이 없다고 생각이 들어 StatelessWidget을 사용하였습니다. ◟( ˘ ³˘)◞ ♡
StatelessWidget vs StatefulWidget 포스팅
빌드 화면
🐱 전체 소스 프로젝트 바로가기 🐱
처음에는 위젯 하나 그리기에도 시간이 오래 걸렸는데, 점점 속도가 빨라지고 있어요!!
728x90
반응형
'Flutter' 카테고리의 다른 글
[Flutter] ListView (3) ListView.separated (0) | 2022.03.30 |
---|---|
[Flutter] ListView (2) ListView.Builder (0) | 2022.03.25 |
[Flutter] StatelessWidget vs StatefulWidget (0) | 2022.03.22 |
[Flutter] pubspec.yaml (2) 속성 정리 (0) | 2022.03.18 |
[Flutter] Linter (with. flutter_lints) (0) | 2022.03.16 |
Comments