ドキュメントは非常にわかりにくく曖昧です。状態は次のとおりです。
Builderクラス
クロージャを呼び出して子ウィジェットを取得するプラトニックウィジェット。
私の質問は次のとおりです。
基本的には、ウィジェットを構築する関数をウィジェットに変換します。
ウィジェットを渡す必要があるが、ウィジェットを返す関数のみが必要な場合は、Builder
ウィジェットを使用できます。
bool bar;
Widget createFooOrBarWidget() {
if(bar) {
return BarWidget();
}
return FooWidget();
}
Widget build(BuildContext context) =>
Container(child: Builder((context) => createFooOrBarWidget()));
あなたも使うことができます
Widget build(BuildContext context) =>
Container(child: createFooOrBarWidget());
前者は、build
が実際に呼び出されるまで、FooまたはBarウィジェットの作成を遅らせます。