northpaddyのブログ

日々学んだプログラミングについてアウトプットしていきます

Flutterデモアプリをカスタマイズしてみよう①

概要

Flutterデモアプリを少しずつ弄っていってFlutterに慣れていくのが目的です

前回のデモアプリ立ち上げの状態のコードはこちら

コメントの削除

今回はまずコメントを削除してスッキリさせます

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

これでスッキリしました

では今のデモアプリ状態を見てみましょう
https://i.gyazo.com/91ffcd90046ff8b754a39b8dffff227d.png
こんな感じになってます

コードを詳しく見てみよう

このコードのどこがどこに対応しているのか見てみましょう
Flutter inspectorを開いてみてみます
https://i.gyazo.com/cf40df1061110338ec6874e8005676ff.png
このコードはこのように構成されていることがわかります
その中のscaffoldの中に注目してみましょう

  • Centerの中にColumnTextText(センターにColumnで表示されたTextとTextがある)
  • AppBarの中にText(AppBarにTextが表示されている)
  • FloatingActionButtonの中にIcon(FloatingActionButtonにIconの+が表示されている)

どうやらこの辺が表示関連に関わっていそうです

日本語に直してみよう

表示関連の場所が特定できたのでちょっと弄ってみましょう

現在デモアプリに表示されている文字は
英語で僕たち日本人には読めません!(キッパリ)

では日本語に直していきましょう
ではまず”Flutter Demo Home Page”を日本語にしていきます
先ほどのscaffoldの中のAppBarの中を見てみます

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),

Textの中に(widget.title)とあります
これは上の方にある

   home: MyHomePage(title: 'Flutter Demo Home Page'),

ここからwidget.titleとして呼び出されているようです

どちらを変更してもタイトルは変えられますが
AppBarの方を直接変えてみます

   title: Text("フラッターデモホームページ"),

変更しました!
ホットリロードを使って反映された事を確認します
command+sを押すか、⚡︎マークボタンを押します
するとホットリロードが実行されます
https://i.gyazo.com/1513d0dd23d9a04567c0683ca6a51671.png

AppBarの文字が”フラッターデモホームページ”に変更されました!

アイコンを追加してみる

文字を日本語にすることが出来たので
今度はAppBarにさらにアイコンを追加してみます
title: Text("フラッターデモホームページ"),で改行し、
actions: []と記述します
[ ]の間で改行しIcon(Icons.),と記述します

flutterで用意されているのか
アイコンは無数に用意されています笑
Icons.と入力すると候補がたくさん出てきます

適当に選んでみましょう!

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("フラッターデモホームページ"),
        actions: [ //追記
          Icon(Icons.adb_outlined), //追記
        ],

適当にadb_outlinedを選んでみました
それではホットリロードを実行してみます
https://i.gyazo.com/cb023475d6cdc662794afe728ff8ec9c.png
右端にアイコンが追加されました!!

まとめ

今回はAppBarの中を変更してみました
まだまだ理解は出来ていないところもありますがアウトプット頑張ります