如何在 Android Studio Quick Fix 菜单中获取 AppLocalizations 导入建议

che*_*ion 10 android-studio dart-analyzer flutter pubspec flutter-localizations

问题陈述

目前,在 AppLocalizations 上调出 Android Studio 快速修复菜单(Opt/Alt+Enter 键盘快捷键)并不建议导入生成的文件。

AppLocalizations 类位于.dart_tool/flutter_gen/gen_l10n/app_localizations.dart,这也是一个 Git 忽略的目录。

结果我必须手动输入导入语句。其他 Flutter 类名称通常建议通过“快速修复”菜单导入相关文件。

预期是什么

我期待“快速修复”菜单建议导入生成的 AppLocalizations 文件。当我单击导入建议时,它应该将其与其他导入语句一起插入到文件顶部。

问题

如何让导入建议出现在 AppLocalizations 的“快速修复”菜单中?我是否需要帮助 Dart 分析器“了解”目录中生成的文件.dart_tool?我可以将生成的文件包含在我的“项目”中,同时仍然 Git 忽略它吗?我是否需要在我的 pubspec 文件中链接到它?

“快速修复”菜单缺少导入建议的屏幕截图

“快速修复”菜单的屏幕截图不建议使用 AppLocalizations 导入

Dia*_*ana 8

我没有找到自动建议的解决方案。

import 'package:flutter_gen/gen_l10n/app_localizations.dart';
Run Code Online (Sandbox Code Playgroud)

只需手动添加此导入即可。注意:它一开始仍然无法识别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);
}

Run Code Online (Sandbox Code Playgroud)

我从我的小部件中调用翻译,如下所示:

title: Text(getApplocalizations(context)?.pageHomeTitle("Test") ?? ""),
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以仅在一个位置手动添加导入。