GridView
- 격자 레이아웃
- grid가 몇개 생성될지 미리 알고 있으면 GridView.count 쓰고
- grid가 몇개 생성될지 아직 모르겠으면 GridView.builder
GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2 ),
itemCount: list자료.length,
itemBuilder: (c, i) {
return Container(color : Colors.grey);
}
),
- itemCount : 개수
- gridDelegate : 가로로 보여질 개수
예제
body: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2), // 가로 개수
itemBuilder: (c, i) { return Container(color: Colors.grey); },
itemCount: 3,
)
스크롤바 만들어주는 CustomScrollView()
CustomScrollView(
slivers: [ 위젯1, 위젯2, 위젯3 ]
)
스크롤 영역 안에 ListView 만들고 싶으면 SliverList()
SliverList(
delegate: SliverChildListDelegate(
[ Text('리스트'), Text('리스트'), Text('리스트') ]
)
),
CustomScrollView안에 GridView 만들고 싶으면 SliverGrid()
SliverGrid(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
delegate: SliverChildListDelegate(
[ Container(Colors.blue), Container(Colors.green), Container(Colors.yellow) ],
),
),
CustomScrollView 안에 박스 넣고 싶으면 SliverToBoxAdapter()
- child 안에 원하는 위젯 넣으면 됨
SliverToBoxAdapter(
child: ProfileHeader(),
),
CustomScrollView 안에 예쁜 헤더 만들고 싶으면 SliverAppBar()
- 맨 위 헤더 영역을 만들어줌
- 스크롤 시작되면 뒷 배경 사라짐
- pinned:true (상단고정옵션)
- floating:true (위로 스크롤시 등장여부)
- expandedHeight: 300 (높이 설정)
- flexibleSpace: FlexibleSpaceBar() (앱바에 넣을 내용)
⇒ 참고
FlexibleSpaceBar class - material library - Dart API
인스타그램 프로필 페이지 같은 레이아웃
- 위엔 Container, 아래엔 GridView
- 이 전체를 묶어서 스크롤바를 만들고 싶으면 CustomScrollView 안에 Container + GridView 넣으면 끝
body : CustomScrollView(
slivers: [
SliverToBoxAdapter(child: ProfileHeader()),
SliverGrid(
delegate: SliverChildBuilderDelegate(
(c,i) => Container(color : Colors.grey),
childCount: 3,
),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2 ))
],
)
'Web & Android > Flutter' 카테고리의 다른 글
[Flutter] 반응형 스크린 사이즈 (0) | 2023.09.23 |
---|---|
[Flutter] notification 알림 주는 법 (1) | 2023.09.23 |
[Flutter] Provider : store 여러개 & GET 요청 (0) | 2023.09.23 |
[Flutter] 친구 팔로우 하기 (1) | 2023.09.23 |
[Flutter] Provider : 3-step 다른 방법 (0) | 2023.09.23 |