[Flutter]Columnのサイズを画面サイズとの比率で設定するには?

Flutter

どうも、ちょげ(@chogetarou)です。

Columnのサイズを画面サイズの比率で指定する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Columnのサイズを画面サイズの比率で指定するには、MediaQuery.of(context).sizeを使います。

まず、ColumnをSizedBoxもしくはContainerのchildに指定します。

そして、SizedBoxもしくはContainerの引数「height」に、高さとしてMediaQuery.of(context).size.heightに比率を掛けた値を指定します。

また、引数「width」に、横幅としてMediaQuery.of(context).size.widthに比率を掛けた値を指定します。

SizedBox(
  height: MediaQuery.of(context).size.height * (比率),
  width: MediaQuery.of(context).size.width * (比率),
  child: Column(
    children: [
      ・・・
    ],
  ),
),

これでColumnのサイズを画面サイズとの比率で指定することが出来ます。

もし、コードを簡潔にしたいのであれば、変数を使うことを勧めます。

buildメソッド内で次のように変数を宣言することで、より簡潔なコードを書くことが出来ます。

  @override
  Widget build(BuildContext context) {
    final _screenSize = MediaQuery.of(context).size;
    ・・・
  }

使用例

以下は、使用例です。

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        body: SizedBox(
          height: MediaQuery.of(context).size.height * 0.75,
          width: MediaQuery.of(context).size.width * 0.5,
          child: Column(
            children: [
              Expanded(
                child: Container(
                  color: Colors.blue,
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }

コメント

タイトルとURLをコピーしました