【 Flutter 】Flutter を 基礎 から 学習 ( Material ComponentsとiOS-Style ) part134 Material Components

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は Material ComponentsとiOS-Style ( part134 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( Material ComponentsとiOS-Style ) part133 Material Components

引き続き、Material Componentsについて学びます。

IconButton

IconButtonはその名の通りタップ可能なアイコンです。

import 'package:flutter/material.dart';

void main() {
  runApp(new MaterialApp(home: new MyHomePage()));
}

class MyHomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyHomePageState();
  }
}

class _MyHomePageState extends State<MyHomePage> {
  bool dark = false;

  @override
  Widget build(BuildContext context) {
    var iconButtonToggle = false;

    return MaterialApp(
      title: 'Flutter Demo',
      theme: dark ? ThemeData.dark() : ThemeData.light(),
      home: Scaffold(
          appBar: AppBar(
            centerTitle: true, // タイトルが中央になります。
            title: Text('sample'),
            // SliverAppBarにも同じプロパティがあります。
            // flexibleSpace: ,
          ),
          body: Center(
            child: Column(
              children: <Widget>[
                IconButton(
                  onPressed: () {
                    setState(
                      () {
                        iconButtonToggle = !iconButtonToggle;
                      },
                    );
                  },
                  icon: const Icon(
                    Icons.thumb_up,
                    semanticLabel: 'Thumbs up',
                  ),
                  color:
                      iconButtonToggle ? Theme.of(context).primaryColor : null,
                )
              ],
            ),
          )),
    );
  }
}

グッドマークをタップできます。

最後に

このウィジェットはよいですね。
HTMLでこういった実装をするのはやや面倒ですからね。
・・・HTMLでも標準で用意してくれないでしょうかね。

今日はここまで!