重要なアクションを個別表示するフローティングアクションボタン

フローティングアクションボタン (Floating Action Button, FAB) は、マテリアルデザインで特徴的なボタンです。 ひとつのスクリーンでもっとも重要なアクションがある場合、フローティングアクションボタンでそれを促します。 例えば電話のアプリであれば電話をかけるとか、メッセージングアプリならメッセージを作成するといった、主要な動作を FAB を使って実装します。

に対してその名の通り FloatingActionButton ウィジェットで作成できます。

MaterialApp は floatingActionButton プロパティを持っています。 floatingActionButton プロパティに FloatingActionButton ウィジェットをセットすることで、 自動的に適切な場所に表示されます。

import 'package:flutter/material.dart';

void main() => runApp(
      MaterialApp(
        debugShowCheckedModeBanner: false,
        home: MyApp(),
      ),
    );

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _State();
  }
}

class _State extends State<MyApp> {
  int _count = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('FAB Test'),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () => setState(() => _count++),
      ),
      body: Column(
        children: <Widget>[
          Expanded(
            child: Center(
              child: Text(
                '$_count',
                style: TextStyle(
                  fontSize: 48.0,
                ),
              ),
            ),
          )
        ],
      ),
    );
  }
}

また、ラベル付きの FAB は FloatingActionButton.extended で作成できます。

FAB extended

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('FAB Test'),
      ),
      floatingActionButton: FloatingActionButton.extended(
        label: Text('Add'),
        icon: Icon(Icons.add),
        onPressed: () => setState(() => _count++),
      ),
      body: Column(
        children: <Widget>[
          Expanded(
            child: Center(
              child: Text(
                '$_count',
                style: TextStyle(
                  fontSize: 48.0,
                ),
              ),
            ),
          )
        ],
      ),
    );
  }

onPressed などは基本的なボタンの利用方法と同様ですので、 「レイズドボタン」なども参考にしてください。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Flutter 入門