Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

docs.flutter.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic.

Learn more

Flutter 3.41 is live! Check out theFlutter 3.41 blog post!

Work with tabs

How to implement tabs in a layout.

Working with tabs is a common pattern in apps that follow the Material Design guidelines. Flutter includes a convenient way to create tab layouts as part of thematerial library.

This recipe creates a tabbed example using the following steps;

  1. Create aTabController.
  2. Create the tabs.
  3. Create content for each tab.

1. Create aTabController

#

For tabs to work, you need to keep the selected tab and content sections in sync. This is the job of theTabController.

Either create aTabController manually, or automatically by using aDefaultTabController widget.

UsingDefaultTabController is the simplest option, since it creates aTabController and makes it available to all descendant widgets.

dart
returnMaterialApp(home:DefaultTabController(length:3,child:Scaffold()),);

2. Create the tabs

#

When a tab is selected, it needs to display content. You can create tabs using theTabBar widget. In this example, create aTabBar with threeTab widgets and place it within anAppBar.

dart
returnMaterialApp(home:DefaultTabController(length:3,child:Scaffold(appBar:AppBar(bottom:constTabBar(tabs:[Tab(icon:Icon(Icons.directions_car)),Tab(icon:Icon(Icons.directions_transit)),Tab(icon:Icon(Icons.directions_bike)),],),),),),);

By default, theTabBar looks up the widget tree for the nearestDefaultTabController. If you're manually creating aTabController, pass it to theTabBar.

3. Create content for each tab

#

Now that you have tabs, display content when a tab is selected. For this purpose, use theTabBarView widget.

Note

Order is important and must correspond to the order of the tabs in theTabBar.

dart
body:constTabBarView(children:[Icon(Icons.directions_car),Icon(Icons.directions_transit),Icon(Icons.directions_bike),],),
import 'package:flutter/material.dart';void main() {  runApp(const TabBarDemo());}class TabBarDemo extends StatelessWidget {  const TabBarDemo({super.key});  @override  Widget build(BuildContext context) {    return MaterialApp(      home: DefaultTabController(        length: 3,        child: Scaffold(          appBar: AppBar(            bottom: const TabBar(              tabs: [                Tab(icon: Icon(Icons.directions_car)),                Tab(icon: Icon(Icons.directions_transit)),                Tab(icon: Icon(Icons.directions_bike)),              ],            ),            title: const Text('Tabs Demo'),          ),          body: const TabBarView(            children: [              Icon(Icons.directions_car),              Icon(Icons.directions_transit),              Icon(Icons.directions_bike),            ],          ),        ),      ),    );  }}
Was this page's content helpful?

Unless stated otherwise, the documentation on this site reflects Flutter 3.38.6. Page last updated on 2025-10-28.View source orreport an issue.


[8]ページ先頭

©2009-2026 Movatter.jp