- [Flutter] 37. TabBar 위젯이란?2024년 11월 12일
- Song hyun
- 작성자
- 2024.11.12.:50
728x90반응형[Flutter] 37. TabBar 위젯이란?
1. TabBar 위젯에 대해
(1) TabBar와 TabBarView 개념
(2) TabController
(3) 위젯 생명주기
2. 시나리오 코드
import 'package:flutter/material.dart'; import 'package:class_v04/main.dart'; void main(){ runApp(MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override State<MyApp> createState() => _MyAppState(); } // 부모 클래스의 상태를 접근 수정 등 역할 수정 // SingleTickerProviderStateMixin - 애니메이션 쓸 때 알아서 처리해줌 class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin{ // 멤버 변수 선언 // late - 늦은 초기화 // 나중에 초기화 된다. - optional 안 붙여도 오케이 late TabController _tabController; @override void initState() { // 메모리에 올라갈 때, 단 한 번 호출되는 메섣, super.initState(); _tabController = TabController(length: 3, vsync: this); } @override void dispose() { // 위젯 제거 될 대 호출되는 메서드 super.dispose(); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('TapBar Example'), bottom: TabBar( controller: _tabController, tabs: [ Tab(text: 'HOME',), Tab(text: 'HOME',), Tab(text: 'HOME',), ], ), ), body: Container(), ), ); } }
import 'package:flutter/material.dart'; import 'package:class_v04/main.dart'; void main(){ runApp(MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override State<MyApp> createState() => _MyAppState(); } // 부모 클래스의 상태를 접근 수정 등 역할 수정 // SingleTickerProviderStateMixin - 애니메이션 쓸 때 알아서 처리해줌 class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin{ // 멤버 변수 선언 // late - 늦은 초기화 // 나중에 초기화 된다. - optional 안 붙여도 오케이 late TabController _tabController; @override void initState() { // 메모리에 올라갈 때, 단 한 번 호출되는 메섣, super.initState(); _tabController = TabController(length: 3, vsync: this); } @override void dispose() { // 위젯 제거 될 대 호출되는 메서드 super.dispose(); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('TapBar Example'), bottom: TabBar( controller: _tabController, tabs: [ Tab(text: 'HOME', icon: Icon(Icons.home),), Tab(text: 'Favorites', icon: Icon(Icons.star),), Tab(text: 'Settings', icon: Icon(Icons.settings),), ], ), ), body: TabBarView( children: [ Center(child: Text('HOME')), Center(child: Text('Favorites')), Center(child: Text('Settings')), ], ), ), ); } }
728x90반응형'Flutter' 카테고리의 다른 글
[Flutter] 39. 모노리스 구조의 개념과 특징 (1) 2024.11.13 [Flutter] 38. dio 라이브러리를 사용한 HTTP통신 (0) 2024.11.12 [Flutter] 36. BottomSheet 위젯이란? (0) 2024.11.12 [Flutter] 34. Form 따라 만들어보기 (0) 2024.11.08 [Flutter] 33. Form 위젯 (0) 2024.11.08 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)