LoginSignup
1
0

Flutter No MaterialLocalizations found floatingActionButton showModalBottomSheet

Posted at

問題

FlutterでfloatingActionButtonにshowModalBottomSheetを組み込もうとしたときに、「例外」を出してしまいました。
エラーに書いてあることを頼りにCopliotくんに聞いた、localizationDelegateをmaterialAppに追加する、という解決策ではうまくいきませんでした。

また、その誤った解決策を進めるにはflutter_localizationsというimportが必要で、それのダウンロードをするにはintlの最新版では依存関係がうまくいかずダウンロードできないということがありました

TextField requires a MaterialLocalizations widget
という記事も見つけ、原因がlocalizations Widgetが渡せていないことというのはわかってきたのですが、解決方法が二つ提示されていたなかで、
自分のディレクトリ構成の問題で、(main.dart(アプリのロジックを書く), App.dart(全体の設定を書く), page.dart(個別のwidgetを書く)のように作っていこうと決めていたおり、FloatingActionButtonはmaterial直下としてアプリの画面に共通してあるしApp.dartに置こうと決めた)
その記事の二つめの方法をとり、それでは解決にはいたりませんでした。

解決

stack overflowを眺めていると、TextField requires a MaterialLocalizations widgetの二つ目の方法を解決方法として書いており、どうやらこっちは間違いないらしいぞ、ということに気づき始めました。

今回の問題はmaterialAppが裏で渡しておいてくれるはずの情報が、べた書きしてしまったことで行き届いてなかったことが原因ーー素直に別でwidgetとしてまとめれば、それで解決する。

ということで、floatingActionButtonの名前付き引数に直接充てていたFloatingActionButtonをstfulWigetでくくることで、ようやく解決することができました……

初めて書いたうえ、少し急いでいるので、至らない部分があったら申し訳ないです……

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0