我想让我的应用程序与导航抽屉. 当打开抽屉时,我得到了以下异常,该异常是由FIFTH_LOCALATION引起的.
微件库=======================================================捕获到异常 在生成NavigationDrawer时引发以下_CastError(脏,依赖项:[_LocalizationsScope-[GlobalKey#9fbb0]]): 在空值上使用的空判断运算符
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MaterialApp(
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [
Locale('en'),
Locale('ja'),
],
home: MyPage(),
));
}
/// A simple app that loads an adaptive banner ad.
class MyPage extends StatefulWidget {
const MyPage({super.key});
@override
MyPageState createState() => MyPageState();
}
class NavigationDrawer extends StatelessWidget {
const NavigationDrawer({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) => Drawer(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
buildMenuItems(context),
],
),
),
);
Widget buildMenuItems(BuildContext context) => Container(
padding: const EdgeInsets.all(24),
child: Wrap(
runSpacing: 16,
children: [
ListTile(
leading: const Icon(Icons.person),
title: Text(AppLocalizations.of(context).person),
onTap: (){},
),
],
),
);
}
class MyPageState extends State<MyPage> {
final _key = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return MaterialApp(
title: AppLocalizations.of(context).appname,
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
themeMode: ThemeMode.system,
home: Scaffold(
key: _key,
appBar: AppBar(
title: Text(AppLocalizations.of(context).appname),
),
drawer: SafeArea(
bottom: false,
child: const NavigationDrawer(),
),
body: Stack(
),),
);
}
}
AppLocalizations.of(上下文).appname运行良好. 但是AppLocalizations.of(Context).Person不起作用. 所以我猜NavigationDrawer中的上下文没有区域设置信息.