Flutter: MacOSのデスクトップアプリで「The Scrollbar's ScrollController has no ScrollPosition attached.」のエラー
結論:OS判定をして「ScrollBar」有りと無しのWidgetを出し分ける
2022/4/7 Flutter エラー・バグ日記
Flutterを2.10.3にアップデートした後に、macOSアプリとしてビルドすると、今までエラーにならなかったリストビューで、上記エラーが発生。
アプリは落ちないが、コンソールに同じエラーが出続ける。。
リストビューに使用している「ScrollBar」が問題らしい。
「isAlwaysShown」は「false」にしているので、共通「controller」の設置有無は原因ではないはず。。
調べてみると、Flutter公式に、下記情報が掲載されていた。
※ググった結果、下記2つのイシュー情報を見つけ、そこからたどり着いた。
要は、デスクトップアプリの場合は、スクロールバーを自動設置してくれるようになったので、手動で設置してしまうと、二重になってエラーになるよ、ということらしい。
デスクトップ版だけ作る場合は便利だが、通常はネイティブアプリも作ると思うので、逆に面倒な気も。。
同じ公式ページ内にある「Migration guide」によると、
- OS判定して、「ScrollBar」有りのWidgetと、無しのWidgetを出し分ける
- 「ScrollConfiguration」クラスを修正して、自動スクロールバーを表示を「false」にする
といった対応策が提示されている。
確かにOS判定して、Widgetを出し分けたところ、無事、エラーは解消された。
\一般的なエラー対処法をまとめた記事はこちら/
リリースしたアプリ(全てFlutterで開発)
個人アプリ開発で役立ったもの
おすすめの学習教材
\超初心者向けでオススメな元Udemyの講座/
\キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/
\Gitの基礎について無料で学べる/
おすすめの学習書籍
\実用的。image_pickerに関してかなり助けられた/
\Dartの基礎文法を素早くインプットできる/