[플러터] TabBar 만들기

2021. 8. 28. 00:47·Flutter/Flutter Widget Basic
목차
  1. TabBar & TabBarView

Tabbar를 만드는 방법에도 여러가지가 있다.

AppBar와 함께 만들 수 있고 TabBar와 TabBarView 위젯으로도 만들 수 있다.

후자의 방법에 대해 알아보자.

 

TabBar & TabBarView

class _LibraryPageState extends State<LibraryPage>
    with SingleTickerProviderStateMixin {
    //클래스에 with 해준다.
    ...
    }

사용하고자하는 클래스에 TickerProvider를 with 해준다.

간단하게 Animation의 Sync를 맞춰준다고 생각하면 된다.

 

//선언부터 한다
TabController? _tabController;
  
  @override
  initState(){
  //정의는 initState 이후에 한다
  	_tabController = new TabController(vsync: this, length: tabNames.length);
  }

여기서 vsync는 앞서 with한 클래스이다.

이 때문에 선언과 정의를 한번에 할 수 없으니 initState에서 정의한다.

 

TabBar(
		//디자인과 관련된 속성들
        indicatorWeight: 4.h,
        indicatorSize: TabBarIndicatorSize.label,
        indicatorColor: seletecColor,
        unselectedLabelColor: Color(0xFFDDDDDD),
        labelColor: seletecColor,
        unselectedLabelStyle: TextStyle(color: unseletecColor, fontSize: 15.sp),
        labelStyle: TextStyle(
            color: seletecColor, fontSize: 23.sp, fontWeight: FontWeight.bold),

        onTap: (int i){
        	..//tab 전환시 동작할 함수
        },
        isScrollable: true, //tab이 스크롤이 되는지
        
        controller: controller,
        tabs: [
        //tab들의 속성
        	Tab(...), Tab(...) ....
        ]);

TabBar 위젯을 생성한다. tabs에 Tab들을 삽입한다.

 

TabBarView(
children: bodyWidgets, //List<Widget>
controller: _tabController!,
),

마지막으로 TabBarView에 원하는 View를 삽입해주면 된다.

controller가 관련된 동작을 모두 수행해주기에 index를 별도로 제어해주지 않아도 된다.

 

Lingory에 적용된 TabBarView

 

저작자표시 비영리 변경금지 (새창열림)

'Flutter > Flutter Widget Basic' 카테고리의 다른 글

[플러터] 위젯에 클릭 이벤트 부여하기 (Inkwell, GestureDetector)  (1) 2021.07.31
[플러터] Toast 메시지 (Snack bar) 생성하기  (0) 2021.01.07
[플러터] onClick 속성이 가능한 Text 위젯  (0) 2020.11.21
[플러터] bottom Navigation을 구현하는 3가지 방법  (0) 2020.09.28
[플러터] Inkwell의 이펙트 제거  (0) 2020.09.24
  1. TabBar & TabBarView
'Flutter/Flutter Widget Basic' 카테고리의 다른 글
  • [플러터] 위젯에 클릭 이벤트 부여하기 (Inkwell, GestureDetector)
  • [플러터] Toast 메시지 (Snack bar) 생성하기
  • [플러터] onClick 속성이 가능한 Text 위젯
  • [플러터] bottom Navigation을 구현하는 3가지 방법
박유상의 개발블로그
박유상의 개발블로그
개발블로그
  • 박유상의 개발블로그
    박유상의 개발블로그
    박유상의 개발블로그
  • 전체
    오늘
    어제
    • 전체 (134)
      • Who am I (10)
        • Portfolio (4)
        • Reminiscence (5)
        • Oversea (1)
        • SiliconValley (0)
      • React (36)
        • React Basic (15)
        • React Tech (5)
        • JavaScript (7)
        • TypeScript (3)
        • CSS&HTML (3)
        • Firebase (3)
      • NodeJS (1)
        • NodeJS Basic (1)
      • Flutter (55)
        • Flutter Widget Design (5)
        • Flutter Widget Basic (8)
        • Flutter Tech (18)
        • Flutter Issue (7)
        • Flutter Web (6)
        • About Flutter (2)
        • Firebase (1)
        • Dev Env (1)
        • Dart (7)
      • Programming (31)
        • Web (1)
        • General (0)
        • Algorithm (25)
        • Python (1)
        • VS Code (2)
      • Django (0)
  • 블로그 메뉴

    • Who I AM
    • React
    • NodeJS
    • Flutter
    • Programming
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    TypeScript
    useRef
    CSS
    프로그래머스
    github
    알고리즘
    useTranslation
    react
    플러터
    탐욕법
    자바스크립트
    포트폴리오
    DP
    Python
    리액트
    Lingory
    Firebase
    map
    Flutter
    웹
    링고리
    Redux
    JavaScript
    HTML
    JSON
    useState
    파이썬
    플러터 웹
    flutter web
    DART
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박유상의 개발블로그
[플러터] TabBar 만들기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.