[flutter]Textが巨大化したりテーマが反映されていない時に確認すること

今回、あまり見ない現象が発生しました。Dialogを表示するとその中に配置してあるTextがかなりの大きさに。しかも赤文字ですし黄色い下線があるしでエラーかな?と思わせる雰囲気でした。実際にはエラーではなかったんですが。

なぜ巨大化する?

原因は、「対象WidgetがScafoldのWidgetツリー内にいなかったこと」です。どうも、Text等に対応したスタイルはScafold内でないと適用されないそう。

そして今回はScafold外の非同期処理の中でDIalogを呼び出していたため、スタイルが適用されておらず変な表示になっていました。

解決方法としては、以下のようにDefaultTextStyleで囲ってください。そしてstyleに対して明示的に指定。

DefaultTextStyle(
            style: Theme.of(context).primaryTextTheme.bodyText1!,
            child: Text('test'),
)

以上で正常なText表示になっているはずです。

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