【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part16 基本的なウィジェット

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part16 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part15 基本的なウィジェット

引き続き、基本的なウィジェットについて学びます。

基本的なウィジェット

MediaQueryウィジェット

MediaQueryウィジェットは端末情報を返すウィジェットです。
これはただの関数のような気がしないでもありませんが、Flutterではほとんどの「もの」をウィジェットとして定義しているのでこのような扱いなのでしょう。

自身でインスタンスするものではなく、Scaffoldウィジェットが自動で生成したMediaQueryウィジェットを使用するのが定石のようです。

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

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

var ok = false;

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

class _State extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    var mediaQuery = MediaQuery.of(context);

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('テスト中です。'),
        ),
        body: Center(
          child: Column(
            children: <Widget>[
              Text('幅${mediaQuery.size.width}'),
              Text('横${mediaQuery.size.height}'),
            ],
          ),
        ),
      ),
    );
  }
}

幅と高さを表示してみました。

最後に

これで 基本的なウィジェット はおしまいです。

今日はここまで!

参考

Flutterで三項演算子じゃなくてif文とかswitch文使いたい時 (zenn.dev)