@@ -9,6 +9,7 @@ import 'base/intl_resource_delegate.dart';
99import 'config.dart' ;
1010import 'home.dart' ;
1111import 'l10n/app_localizations.dart' ;
12+ import 'provider/locale_provider.dart' ;
1213import 'provider/theme_mode_provider.dart' ;
1314
1415Future <void > main () async {
@@ -44,8 +45,6 @@ class MyApp extends StatefulWidget {
4445class _MyAppState extends State <MyApp > {
4546 late TDThemeData _themeData;
4647
47- Locale ? locale = const Locale ('zh' );
48-
4948 @override
5049 void initState () {
5150 super .initState ();
@@ -71,9 +70,18 @@ class _MyAppState extends State<MyApp> {
7170 return provider;
7271 },
7372 ),
73+ ChangeNotifierProvider (
74+ create: (_) {
75+ final provider = LocaleProvider ();
76+ WidgetsBinding .instance.addPostFrameCallback ((_) async {
77+ await provider.initLocale ();
78+ });
79+ return provider;
80+ },
81+ ),
7482 ],
75- child: Consumer <ThemeModeProvider >(
76- builder: (context, themeModeProvider, child) {
83+ child: Consumer2 <ThemeModeProvider , LocaleProvider >(
84+ builder: (context, themeModeProvider, localeProvider, child) {
7785 return MaterialApp (
7886 title: 'TDesign Flutter Example' ,
7987 theme: _themeData.systemThemeDataLight,
@@ -90,12 +98,6 @@ class _MyAppState extends State<MyApp> {
9098 );
9199 return MyHomePage (
92100 title: AppLocalizations .of (context)? .components ?? '' ,
93- locale: locale,
94- onLocaleChange: (locale) {
95- setState (() {
96- this .locale = locale;
97- });
98- },
99101 onThemeChange: (themeData) {
100102 setState (() {
101103 _themeData = themeData;
@@ -105,7 +107,7 @@ class _MyAppState extends State<MyApp> {
105107 },
106108 ),
107109 // 设置国际化处理
108- locale: locale,
110+ locale: localeProvider. locale,
109111 supportedLocales: AppLocalizations .supportedLocales,
110112 localizationsDelegates: AppLocalizations .localizationsDelegates,
111113 onGenerateRoute: TDExampleRoute .onGenerateRoute,
0 commit comments