[Flutter] TabBarって何?

FlutterのTabBarウィジェットは、複数のページやコンテンツを含むアプリケーションのナビゲーションに使用される標準的なUIパターンです。このウィジェットを使用すると、ユーザーはタブをタップして異なるページやコンテンツに切り替えることができます。この記事では、FlutterのTabBarについて、基本的な使い方を中心に解説します。

目次

TabBarの基本的な使い方

まず、TabBarを使うためには、TabBarウィジェットとTabBarViewウィジェットを組み合わせて使用する必要があります。TabBarはタブバー自体を描画し、TabBarViewはタブに関連するページを描画します。

例えば、3つの異なるページを含むアプリケーションを作成する場合、次のようにTabBarとTabBarViewを作成することができます。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage>
    with SingleTickerProviderStateMixin {
  late TabController _tabController;

  @override
  void initState() {
    super.initState();
    _tabController = TabController(vsync: this, length: 3);
  }

  @override
  void dispose() {
    _tabController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('TabBar Example'),
        bottom: TabBar(
          controller: _tabController,
          tabs: [
            Tab(text: 'Tab 1'),
            Tab(text: 'Tab 2'),
            Tab(text: 'Tab 3'),
          ],
        ),
      ),
      body: TabBarView(
        controller: _tabController,
        children: [
          Center(child: Text('Tab 1')),
          Center(child: Text('Tab 2')),
          Center(child: Text('Tab 3')),
        ],
      ),
    );
  }
}

このコードでは、AppBarウィジェットにTabBarを配置し、TabBarViewをScaffoldのbodyプロパティに追加しています。TabControllerを使用して、タブとその関連するページを結びつけています。

タブのカスタマイズ

TabBarウィジェットを使用して、タブをカスタマイズすることもできます。例えば、TabBarのタブの高さ、色、テキストスタイルなどを変更することができます。以下の例では、タブの高さを48に変更し、タブの文字色を白に変更し、アクティブなタブの背景色を青に変更しています。

TabBar(
  controller: _tabController,
  tabs: [
    Tab(text: 'Tab 1'),
    Tab(text: 'Tab 2'),
    Tab(text: 'Tab 3'),
  ],
  labelColor: Colors.white,
  unselectedLabelColor: Colors.white.withOpacity(0.5),
  indicator: BoxDecoration(
    color: Colors.blue,
  ),
  indicatorSize: TabBarIndicatorSize.tab,
  indicatorPadding: EdgeInsets.symmetric(horizontal: 16.0),
  indicatorColor: Colors.white,
  labelPadding: EdgeInsets.symmetric(horizontal: 8.0),
  labelStyle: TextStyle(fontSize: 18.0),
)

これにより、タブの高さが48ピクセルに変更され、アクティブなタブの背景色が青色に変更され、テキストの色が白色に変更され、タブの文字スタイルが18ポイントのサイズに変更されました。タブの間の余白を調整するために、labelPaddingとtabPaddingを使用して、タブの幅と高さを調整することもできます。

まとめ

FlutterのTabBarは、複数のページやコンテンツを含むアプリケーションのナビゲーションに使用される標準的なUIパターンです。TabBarを使用すると、ユーザーはタブをタップして異なるページやコンテンツに切り替えることができます。基本的な使い方を覚え、必要に応じてタブをカスタマイズすることができるようになると、アプリケーションのナビゲーションを追加するのに役立ちます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次