Dart / Flutterでcontextを取得する方法

flutterで画面を動的に作りたい場合に、

MediaQuery.of(context).size.width

を使って、サイズを指定することがあると思います。

この時に、contextが必要になって、いちいち渡すのが面倒だなと思ったんですよね。。

labelA(context) {
  size = MediaQuery.of(context).size.width * 0.8;
  return Text('A', style: TextStyle(fontSize: size));
}

↑こんな感じ。。

なので調べました!
が、
結論としてcontextをグローバルで取得する方法はありません!

なのでcontextを使いたいような画面パーツを使る場合は、
関数を定義してcontextを渡すよりも、StatelessWidgetを使うのが、
スマートだと思います。

class LabelA extends StatelessWidget {
  size = MediaQuery.of(context).size.width * 0.8;
  const LabelA({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Text('A', style: TextStyle(fontSize: size));
  }
}

Flutter開発で知らないと損すること Flutter開発で知らないと損すること

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です