いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Flutterメモ-21 (CenterウィジェットとRowウィジェットで中央表示)

概要

前回

devlights.hatenablog.com

という形で、CenterウィジェットとColumnウィジェットさんについて書いたので

ついでに CenterウィジェットさんとRowウィジェットさんについてもメモしておこうと思いました。

基本は同じです。なので、Rowウィジェットさんは可能な限り横幅を確保しようとしてくれます。

なので

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: Scaffold(
        body: Center(
          child: Container(
            color: Colors.yellow,
            child: Row(
              children: const [
                Text('hello world'),
              ],
            ),
          ),
        ),
      ),
    ),
  );
}

f:id:gsf_zero1:20210930180739p:plain

となります。

これを必要な分のみの確保にするには、Columnウィジェットの場合と同様に MainAxisSize プロパティを設定します。

import 'package:flutter/material.dart';

void main() {
  const _axisSize = MainAxisSize.min;

  runApp(
    MaterialApp(
      home: Scaffold(
        body: Center(
          child: Container(
            color: Colors.yellow,
            child: Row(
              mainAxisSize: _axisSize,
              children: const [
                Text('hello world'),
              ],
            ),
          ),
        ),
      ),
    ),
  );
}

f:id:gsf_zero1:20210930180931p:plain

MainAxisSizeの値はデフォルト(max)のままで、MainAxisAlignmentの値を中央(center) にした場合は以下のようになります。

import 'package:flutter/material.dart';

void main() {
  const _axisSize = MainAxisSize.max;
  const _axisAlign = MainAxisAlignment.center;

  runApp(
    MaterialApp(
      home: Scaffold(
        body: Center(
          child: Container(
            color: Colors.yellow,
            child: Row(
              mainAxisSize: _axisSize,
              mainAxisAlignment: _axisAlign,
              children: const [
                Text('hello world'),
              ],
            ),
          ),
        ),
      ),
    ),
  );
}

f:id:gsf_zero1:20210930181147p:plain

参考情報

stackoverflow.com

qiita.com

github.com


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com