gpt4 book ai didi

flutter - Flutter 中 MaterialApp 类中的构建器属性的示例?

转载 作者:IT老高 更新时间:2023-10-28 12:39:22 27 4
gpt4 key购买 nike

在 MaterialApp 类中,有一个属性调用构建器。

有没有关于如何使用 builder 属性的示例或教程?

最佳答案

builder 可用于将您的路由小部件与父小部件包装在一起。

例如,如果您有一个 LoadingSpinner 小部件,那么不要将每个单独的路由小部件包装在其中。你可以简单地做:

builder: (context, widget) => LoadingSpinner(child: widget)

widget 将是您在该特定 route 拥有的任何小部件。

本地化用例

另一个有用的用例是,如果您有需要语言的顶级 BLoC(例如登录 BLoC):

   MaterialApp(
//... All the config properties
builder: (context, widget) => Provider<LoginBloc>(
// This line has access to the Locales
builder: (_) => LoginBloc(languageCode: Localizations.localeOf(context).languageCode),
dispose: (_, bloc) => bloc.dispose(),
child: widget, // `widget` is either ProfilePage or LoginPage`
),
supportedLocales: [
const Locale('en', 'US'), // US English
const Locale('en', 'GB'), // GB English
const Locale('da', 'DK'), // Danish
// ... other locales the app supports
],
routes: <String, WidgetBuilder>{
'/profile': (context) => ProfilePage(),
'/login': (context) => LoginPage(),
},
),
);

如果您将 Provider 作为 MaterialApp 的父级,Localizations.localeOf(context) 会崩溃。所以这里 builder 展示了它的值(value)。

以上假设您知道 BLoC 模式是什么,以及 Provider 是什么。

关于flutter - Flutter 中 MaterialApp 类中的构建器属性的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49748759/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com