[Flutter] GridView, CustomScrollView 프로필 페이지 만들기

2023. 9. 23. 14:26·Web & Android/Flutter

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] 반응형 스크린 사이즈  (1) 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
'Web & Android/Flutter' 카테고리의 다른 글
  • [Flutter] 반응형 스크린 사이즈
  • [Flutter] notification 알림 주는 법
  • [Flutter] Provider : store 여러개 & GET 요청
  • [Flutter] 친구 팔로우 하기
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    python
    backjoon
    Linux
    pcce 기출문제
    CS
    리눅스마스터
    자바
    spring
    시큐리티
    programmers
    데이터
    Flutter
    Java
    스프링부트
    postgresql
    JPA
    리눅스마스터 1급
    baekjoon
    CS지식
    스프링 부트 쇼핑몰 프로젝트 with JPA
    springboot
    스프링
    백준
    Oracle
    리눅스
    DB
    데이터베이스
    프로그래머스
    Spring Security
    플러터
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[Flutter] GridView, CustomScrollView 프로필 페이지 만들기
상단으로

티스토리툴바