お久しぶりです。みやかわです。
Flutter で開発をしているときに、常にスクロールバーを出す View を作りたいことがあります。
ググってしまえば簡単にわかるのですが、頻繁に忘れるのでメモ程度に書いておきます。
実装
SingleChildScrollView Widget を Scrollbar Widget で囲う。
そして、常にスクロールバーが出るように Scrollbar のオプションにて、isAlwaysShown: true にしてあげる。
また、この状態だと Scrollbar と SingleChildScrollView のフォーカスが重複しどちらにフォーカスを当てればよいわからずエラーを履くため、Scrollbar を優先してフォーカスする。
ちなみに以下のエラーが出る。
════════ Exception caught by scheduler library ═════════════════════════════════ The following assertion was thrown during a scheduler callback: The PrimaryScrollController is currently attached to more than one ScrollPosition. The Scrollbar requires a single ScrollPosition in order to be painted. When Scrollbar.isAlwaysShown is true, the associated Scrollable widgets must have unique ScrollControllers. The PrimaryScrollController is used by default for ScrollViews with an Axis.vertical ScrollDirection, unless the ScrollView has been provided its own ScrollController. More than one Scrollable may have tried to use the PrimaryScrollController of the current context. When the exception was thrown, this was the stack
実装は以下
コメント