今回のチャプターでは、Flutterのウィジェット「Text」と「TextStyle」について解説していきます。
今回はチャプター8で作成したFlutterアプリを使いますので、ご用意ください。
Flutterアプリの組み立て方
Flutterアプリは、フレームワークであるFlutter
が提供するWidget(ウィジェット)
と呼ばれるUIを構築するパーツを組み合わせて作成します。Widgetには、テキストを表示するものやレイアウトを調整するもの、ボタンを表示するものなど様々とあり、アプリを作るのに十分なWidget
があります。
HTMLを学んだことのある人はよく分かると思いますが、Widget
は入れ子(ネスト)
のようにして組み合わせます。
どういうことか、コードで例をみた方が早いと思うので下記をみてください。
// 例
home: Scaffold(
body: Center(
child: Text('こんにちは'),
),
),
この例でいうと、青くなっているのが全てWidget
で、このようにWidget
の中にWidget
が含まれているのが分かるかと思います。画面に表示されるイメージとしては絵のような感じで、Widget
の上にWidget
が乗ります。つまり考え方はこうです↓
Flutterアプリの基本の形
Flutterアプリでは最初の基本的な書き方があります。Dartを元に作られているので、アプリの開始はlib
フォルダ配下のmain.dart
のvoid main()
からスタートします。そのスタートした所で、runApp
関数を実行することでFlutterアプリは起動します。(細かい部分については別チャプターで解説します)
flutter create appname
で作成したばかりのサンプルで作られている部分は全て消して、下のコードをコピペしてください。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'appname',
home: Scaffold(
body: Text(''),
),
);
}
}
テキスト(Text) 【Widget】
早速Widget
を解説していきます。まずテキストを表示するウィジェットです。
テキストはText
ウィジェットを使います。使い方は簡単で、Text()
でかっこの中に表示したい文字列を入れるだけです。アプリの起動に関しては、チャプター05,06を参照してください。
// 例
Text('こんにちは'),
表示できたでしょうか?あれ、文字が小さいと思ったのではないでしょうか?
そんな時はTextStyle
で文字サイズを変更します。
// 例
Text(
'こんにちは',
style: TextStyle(
fontSize: 30,
),
),
このようにカンマを使って、色々な設定をします。
TextStyle
には色々な設定があり、よく使うので解説します。
テキストスタイル(TextStyle)
まずTextStyle
ですが、20以上の設定項目があります。
全部を紹介しても覚えきれないと思いますので、今回はよく使う下記の5つを解説します。
Text(
'こんにちは',
style: TextStyle(
fontSize: 30.0, // 文字サイズ
fontWeight: FontWeight.bold, // 文字の太さ
color: Colors.blue, // 文字の色
letterSpacing: 3.0, // 文字と文字のスペース
fontFamily: 'Lato', // フォントの種類
),
),
まずfontSize
ですが、これは文字のサイズでdouble型
で指定します。このサイズはピクセル表示で、デフォルトは14px(ピクセル)となっています。
続いてfontWeight
ですが、文字の太さを指定します。文字の太さを太くするにはFontWeight.bold
を使います。それ以外にも値がありますが、指定しなくて良いと思います。デフォルトはFontWeight.normal
となっています。
続いてcolor
ですが、これは文字の色を指定します。色の指定についてはまた別のチャプターで詳しく解説しますが、今回の場合だと青に変えています。
続いてletterSpacing
ですが、文字と文字のスペースでdouble型
で指定します。このサイズもピクセル表示で、デフォルトは0pxです。文字間を広げた方が読みやすくなる時もあるので、臨機応変に使うと吉です😊
最後にfontFamily
ですが、フォントの種類を指定します。デフォルトはRoboto
というGoogleフォントになっています。フォントはフリーフォントなどを使うことが出来ます。今回の場合だとLato
というフリーフォントを使っています。
Flutterでフリーフォントを設定するまでの手順を下記にまとめます。
- フリーフォントを取得します。今回はLatoを使用
- Flutterアプリに
assets
というフォルダを作成し、その配下にfonts
というフォルダを作成します。 - インストールしたフリーフォントの中にある
〇〇-Regular.ttf
と〇〇-Bold.ttf
というファイルをFlutterアプリのfonts
配下に移動する -
pubspec.yaml
ファイルのデフォルトだと40行目くらいの所にあるflutter:
の下の所に下記のように記述する。
flutter:
fonts:
- family: Lato
fonts:
- asset: assets/fonts/Lato-Regular.ttf
- asset: assets/fonts/Lato-Bold.ttf
weight: 700
この時、上のように字下げしていないと正しくロードされないので注意が必要です。
family:
の所に指定する名前=fontFamily
で指定する名前になります。
fonts:
の所でインポートするttfファイルを読みこみます。
Regularには必要ないですが、文字の太い方にはweight:
に600,700,800,900のどれかを指定してあげましょう。
書き終わったらyamlファイルを保存します。そうするとVSCodeの場合、flutter pub get
というコマンドが勝手に実行されてフォントが使えるようになります。(実行されない場合は手動で!)
テキストに関しては、とりあえずこんな感じで解説終わります。(頭痛くなると思うので...)
次のチャプターでは、ウィジェットの1つContainer
について解説します。