본문 바로가기
코딩(개발)/Flutter

탭 컨트롤러

by 플랜데버 2021. 2. 4.

탭바를 누르거나 화면을 슬라이드 시키면 페이지 바뀌면서 보여준다

 

 

- 첫번째 페이지

import 'package:flutter/material.dart';

class FirstApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      body: Container(

        child: Center(

          child: Text('첫번째페이지'),

        ),

      ),

    );

  }

}

 

- 두번째 페이지

import 'package:flutter/material.dart';

 

class SecondApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      body: Container(

        child: Center(

          child: Text('두번째페이지'),

        ),

      ),

    );

  }

}

 

 

- 메인

import 'package:flutter/material.dart';

import 'package:test2_tabbar/sub/firstPage.dart';

import 'package:test2_tabbar/sub/secondPage.dart';

 

void main() {

  runApp(MyApp());

}

 

class MyApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    return MaterialApp(

      title: 'Flutter Demo',

      theme: ThemeData(

        primarySwatch: Colors.blue,

        visualDensity: VisualDensity.adaptivePlatformDensity,

      ),

      home: MyHome(),

    );

  }

}

 

class MyHome extends StatefulWidget {

  @override

  _MyHomeState createState() => _MyHomeState();

}

 

class _MyHomeState extends State<MyHomewith SingleTickerProviderStateMixin {

  TabController controller;

 

  @override

  void initState() {

    super.initState();

    controller = TabController(length: 2vsync: this);

  }

 

  @override

  void dispose() {

    controller.dispose();

    super.dispose();

  }

 

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(title: Text('앱바')),

      body: TabBarView(

        children: <Widget>[FirstApp(), SecondApp()],

        controller: controller,

      ),

      bottomNavigationBar: TabBar(tabs: <Tab>[

        Tab(

          icon: Icon(

            Icons.looks_one,

            color: Colors.blue,

          ),

        ),

        Tab(

          icon: Icon(

            Icons.looks_two,

            color: Colors.blue,

          ),

        ),

      ], controller: controller),

    );

  }

}

 

 

'코딩(개발) > Flutter' 카테고리의 다른 글

http 기본  (0) 2021.02.04
AlertDialog  (0) 2021.02.04
앱 화면 기본 구성  (0) 2021.02.03
페이지이동(routes,provider)  (0) 2021.01.29
플러터 위젯  (0) 2021.01.23

댓글