Flutter 如何使用登录页面设置Flatter应用程序的本地化?
我有个问题。 我翻译了我的应用程序。 但当我添加本地化时,应用程序不再加载。它总是向我显示装载指示器。 我将Scaffold设置为home,无论用户登录与否都会显示特定的页面,在添加本地化之前,它工作得很好。我肯定我做错了什么,但我不知道在哪里。 感谢那些回答我的人Flutter 如何使用登录页面设置Flatter应用程序的本地化?,flutter,flutter-layout,flutter-dependencies,Flutter,Flutter Layout,Flutter Dependencies,我有个问题。 我翻译了我的应用程序。 但当我添加本地化时,应用程序不再加载。它总是向我显示装载指示器。 我将Scaffold设置为home,无论用户登录与否都会显示特定的页面,在添加本地化之前,它工作得很好。我肯定我做错了什么,但我不知道在哪里。 感谢那些回答我的人 import 'package:Storyteller/app_localizations.dart'; import 'package:flutter/material.dart'; import 'ui/bottomNaviga
import 'package:Storyteller/app_localizations.dart';
import 'package:flutter/material.dart';
import 'ui/bottomNavigation.dart';
import 'package:flutter/services.dart';
import 'blocs/login_bloc.dart';
import 'ui/login.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
class App extends StatefulWidget {
@override
_AppState createState() => _AppState();
}
class _AppState extends State<App> {
@override
void initState() {
super.initState();
bloc.fetchUserLogin();
}
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
),
);
return MaterialApp(
supportedLocales: [
Locale('en', 'US'),
Locale('it', 'IT'),
],
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
localeResolutionCallback: (locale, supportedLocales) {
for (var supportedLocale in supportedLocales) {
if (supportedLocale.languageCode == locale.languageCode &&
supportedLocale.countryCode == locale.countryCode) {
return supportedLocale;
}
}
return supportedLocales.first;
},
debugShowCheckedModeBanner: false,
theme: ThemeData(
cardColor: Colors.grey[100],
brightness: Brightness.light,
accentColor: Colors.black,
primarySwatch: Colors.blue,
primaryColor: Colors.white,
canvasColor: Colors.white,
primaryIconTheme: IconThemeData(
color: Colors.black,
),
primaryTextTheme: TextTheme(
headline6:
TextStyle(color: Colors.black, fontFamily: "SFProDisplayRegular"),
),
textTheme: TextTheme(
headline6: TextStyle(color: Colors.black),
),
),
home: Scaffold(
body: StreamBuilder(
stream: bloc.getUser,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasError) {
return LoginForm();
}
if (snapshot.hasData) {
return StoryTellerBottom();
}
return Center(
child: CircularProgressIndicator(
strokeWidth: 2.0,
),
);
},
),
),
);
}
}
import'包:Storyteller/app_localizations.dart';
进口“包装:颤振/材料.省道”;
导入“ui/bottomNavigation.dart”;
导入“包:flifter/services.dart”;
导入“blocs/loginu bloc.dart”;
导入“ui/login.dart”;
导入“package:flatter_本地化/flatter_本地化.dart”;
类应用程序扩展StatefulWidget{
@凌驾
_AppState createState();
}
类_AppState扩展了状态{
@凌驾
void initState(){
super.initState();
bloc.fetchUserLogin();
}
@凌驾
小部件构建(构建上下文){
SystemChrome.SetSystemTimeOverlayStyle(
系统样式(
statusBarColor:Colors.transparent,
),
);
返回材料PP(
支持的区域设置:[
地区('en','US'),
区域设置(“它”、“它”),
],
本地化授权:[
AppLocalizations.delegate,
GlobalMaterialAllocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
localeResolutionCallback:(locale,supportedLocales){
for(supportedLocales中的var supportedLocale){
如果(supportedLocale.languageCode==locale.languageCode&&
supportedLocale.countryCode==locale.countryCode){
返回支持的语言环境;
}
}
返回supportedLocales.first;
},
debugShowCheckedModeBanner:false,
主题:主题数据(
cardColor:颜色。灰色[100],
亮度:亮度,亮度,
颜色:颜色。黑色,
主样本:颜色。蓝色,
原色:颜色。白色,
画布颜色:颜色。白色,
PrimaryContheme:IconThemeData(
颜色:颜色,黑色,
),
primaryTextTheme:TextTheme(
标题6:
TextStyle(颜色:Colors.black,fontFamily:“SFProDisplayRegular”),
),
textTheme:textTheme(
标题6:TextStyle(颜色:Colors.black),
),
),
家:脚手架(
正文:StreamBuilder(
流:bloc.getUser,
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasError){
返回LoginForm();
}
if(snapshot.hasData){
返回到底部();
}
返回中心(
子对象:循环压缩机指示器(
冲程宽度:2.0,
),
);
},
),
),
);
}
}