てくのーと
208 文字
1 分

Flutter: ThemeDataを設定してもhot reloadで更新されないときの対応

2023-12-08
2024-07-05

ThemeDataを変更しても、hot reloadで変更が反映されないときには以下の問題が考えられる。

main関数内でMaterialAppを呼び出している#

以下の書き方だと、main関数はhot reloadでは実行時の一度きりしか処理が走らない。そのため、一度しか呼び出されないため、変更が反映されることはない。

void main() {
  runApp(const MaterialApp(...));
}

対応としては、MaterialAppを別のWidgetとして切り出し、そのWidgetを呼び出すこと。

void main() {
  runApp(const SampleApp());
}

class SampleApp extends StatelessWidget {
  const SampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(...);
  }
}

他にも静的クラスを引数として渡している場合にもhot reloadで反映される様子。

flutter create template is not hot-reload compatible #6394

\てくのーと おすすめ書籍!/

社会人はもとより、今情報Ⅰを学んでいる人が、なぜ学ぶのか、
学んだ内容をどう活かせるのか、を知るために読むのも良いと思います!
→感想詳細はこちら!