[Flutter]FloatingActionButtonを複数並べる方法

Flutter

どうも、ちょげ(@chogetarou)です。

FloatingActionButtonを複数並べる方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www, グラフィック, フラットなデザイン

FloatingActionButtonを複数並べる方法は2つあります。

レイアウトのウェジェット

1つは、レイアウトに使うウェジェットを使う方法です。

ColumnウェジェットやRowウェジェット、Stackウェジェットなどを使うことで、複数並べることが出来ます。

Scaffoldの引数「floatingActionButton」は、FloatingActionButtonだけでなく、他のウェジェットを指定することができるからです。

以下は、ColumnウェジェットとRowウェジェットを使った例です。

Scaffold(
  body: Column(),
  floatingActionButton: Column(
    mainAxisSize: MainAxisSize.min,
    children: [
      FloatingActionButton(onPressed: () {}),
      SizedBox(height: 20),
      Row(
        mainAxisSize: MainAxisSize.min,
        children: [
          FloatingActionButton(onPressed: () {}),
          SizedBox(width: 20),
          FloatingActionButton(onPressed: () {}),
          SizedBox(width: 20),
          FloatingActionButton(onPressed: () {}),
        ],
      ),
      SizedBox(height: 20),
      FloatingActionButton(onPressed: () {}),
    ],
  ),
);

ColumnやRowを使うときは、引数「mainAxisSize」に「MainAxisSize.min」を指定しましょう。

そうしないと、レイアウトが崩れてしまいます。

flutter_speed_dial

もう1つは、「flutter_speed_dial」パッケージを使う方法です。

まず、パッケージを「pubspec.yaml」ファイルで、導入します。

dependencies:
  flutter_speed_dial: ^3.0.5

次に、パッケージをインポートします。

import 'package:flutter_speed_dial/flutter_speed_dial.dart';

最後に、FloatingActionButtonに、SpeedDialウェジェットを指定します。

return Scaffold(
  body: Column(),
  floatingActionButton: SpeedDial(
    icon: Icons.share,
    backgroundColor: Colors.amber,
    children: [
      SpeedDialChild(
        child: Icon(Icons.face),
        label: 'ソーシャル',
        backgroundColor: Colors.amberAccent,
        onTap: () {},
      ),
      SpeedDialChild(
        child: Icon(Icons.email),
        label: 'メール',
        backgroundColor: Colors.amberAccent,
        onTap: () {},
      ),
      SpeedDialChild(
        child: Icon(Icons.chat),
        label: 'メッセージ',
        backgroundColor: Colors.amberAccent,
        onTap: () {},
      ),
    ],
  ),
);

SpeedDialを使うことで、アイコンボタンをタップすると、複数のアイコンボタンが表示されるようになります。

まとめ

FloatingActionButtonを複数並べる方法には、次の2つがあります。

  • レイアウトのウェジェットを使う方法
  • flutter_speed_dialパッケージを使う方法

コメント

タイトルとURLをコピーしました