在Flutter中启用Android Studio的相对路径自动导入

19

我在使用Android Studio进行Flutter开发。我希望自动导入的语句是相对于文件路径而不是从根目录开始的绝对路径。我只希望对我创建的自定义小部件执行此操作,而不是针对Flutter / Dart内部软件包。

import 'package:stack_app/modules/home/widgets/header.dart';

期望值

import 'widgets/header.dart';

我在Andriod Studio中看到了该设置,但找不到自定义的选项。有人可以指导我如何找到这个IDE插件或设置,以便我可以更改这些设置吗?


你尝试使用过VSCode吗?在这个答案中,你可以安装dart-import插件。你只需要为“Fix Imports”命令添加一个按键绑定。 - rickimaru
2
@rickimaru 我不使用VSCode,我更喜欢Android Studio。 - Yashwardhan Pauranik
3个回答

2
有一种解决方法:首先使用绝对路径进行自动导入。然后,使用“转换为相对导入”将其转换为相对导入。
例如:

enter image description here

结果:

enter image description here

顺便问一下,你为什么想要使用相对导入?这可能是一个X-Y问题。例如,通过使用绝对导入,可以通过搜索字符串,比如import 'package:sth/your_file.dart',清楚地知道文件在哪里被使用。

4
根据Dart指南,建议在项目文件中使用相对导入方式。 - Ariel Magbanua
顺便说一下,如果您在项目中遇到问题并不得不更改项目文件夹或类似情况时,如果您的文件夹结构相同但名称不同,则只需导入相对路径即可,这样就不必再次更改所有包名称。 - reza47
1
相对导入很短。 - Seonghyeon Cho

1

我也更喜欢使用相对导入,通常在Android Studio中使用“转换为相对导入”功能。现在我开始发现有时候该选项不存在。


1
这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Robert

1
你可以在analysis_options.yaml中设置linter规则。
#analysis_options.yaml
linter:
    rules:
        prefer_relative_imports: true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接