提问人:aaronkelton 提问时间:2/1/2022 更新时间:5/26/2023 访问量:925
如何在 Android Studio 快速修复菜单中获取 AppLocalizations 导入建议
How to get AppLocalizations import suggestion in Android Studio Quick Fix menu
问:
问题陈述
目前,在 AppLocalizations 上调出 Android Studio 快速修复菜单(Opt/Alt+Enter 键盘快捷键)不建议导入生成的文件。
AppLocalizations 类位于 ,这也是一个被 Git 忽略的目录。.dart_tool/flutter_gen/gen_l10n/app_localizations.dart
因此,我必须手动键入 import 语句。其他 Flutter 类名通常建议通过 Quick Fix 菜单导入相关文件。
预期内容
我希望“快速修复”菜单建议导入生成的 AppLocalizations 文件。当我单击导入建议时,它应该将其与文件顶部的其他导入语句一起插入。
问题
如何让导入建议显示在 AppLocalizations 的“快速修复”菜单中?我需要帮助 Dart 分析器“知道”目录内生成的文件吗?我可以将生成的文件包含在我的“项目”中,同时仍然忽略它吗?我是否需要以某种方式在我的 pubspec 文件中链接到它?.dart_tool
“快速修复”菜单缺少导入建议的屏幕截图
答:
我没有找到自动建议的解决方案。
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
只需手动添加此导入即可。注意:它一开始仍然无法识别,所以我删除了这一行代码并再次开始输入。现在它起作用了。AppLocalizations.delegate
编辑:
由于您需要在很多地方导入,因此对我来说,解决方法是创建一个类,为我提供该类的实例。AppLocalizations
我创建了一个带有函数的类:common.dart
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
AppLocalizations? getApplocalizations(BuildContext context){
return AppLocalizations.of(context);
}
我像这样从我的小部件中调用翻译:
title: Text(getApplocalizations(context)?.pageHomeTitle("Test") ?? ""),
这样,您只需在一个位置手动添加导入。
解决方案 1:导出一次
添加文件lib/localization.dart
和出口本地化
export 'package:flutter_gen/gen_l10n/home_localizations.dart';
解决方案2:不要使用合成包装
您不必拥有合成包,您可以将生成的类放在 lib 文件夹或任何其他文件夹中。
例:
在包/应用的根目录下添加 l10n.yaml。
arb-dir: lib/localization
output-dir: lib/localization/generated
output-localization-file: account_localizations.dart
output-class: AccountLocalizations
template-arb-file: account_en.arb
synthetic-package: false
use-deferred-loading: true
nullable-getter: false
评论