You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Android Studio自动缩进时忽略指定代码?

当然可以!Android Studio(以及整个IntelliJ IDEA家族的IDE)早就考虑到了这类需求,提供了专门的注释标记来临时屏蔽代码格式化,完美解决你想保留自定义when语句排版的问题。

核心解决方案:用格式化开关注释包裹代码块

你只需要在想要保护的代码前后添加//@formatter:off和//@formatter:on这两个注释,就能让IDE在执行自动格式化(包括构建前lint触发的格式化)时跳过这段代码。

举个例子,把你的when语句改成这样:

//@formatter:off
returnFragment = when (questionKind) {
    QuestionKind.TEXT.int -> GenericTextFragment.newInstance(question, pagerDelegate) //TEXT = 0
    QuestionKind.FREE_TEXT.int -> GenericTextFragment.newInstance(question, pagerDelegate) //TEXTAREA = 1
    QuestionKind.CHECKBOX.int -> SelectFragment.newInstance(question, pagerDelegate) //CHECKBOX = 2
    QuestionKind.RADIO.int -> SelectFragment.newInstance(question, pagerDelegate) //RADIO = 3
    QuestionKind.IMAGE.int -> ImagePickerFragment.newInstance(question, pagerDelegate) //FILE = 4
    QuestionKind.NUMERICAL.int -> GenericTextFragment.newInstance(question, pagerDelegate) //NUMERICAL = 5
    QuestionKind.MULTISELECT.int -> SelectFragment.newInstance(question, pagerDelegate) //MULTISELECT = 6
    QuestionKind.SELECT.int -> SelectFragment.newInstance(question, pagerDelegate) //SELECT = 7
    else -> GenericFragment.newInstance(question, pagerDelegate) // CUSTOM
}
//@formatter:on

确保标记生效的设置检查

默认情况下,这个功能可能没有开启,你需要手动确认:

  • 打开Android Studio的设置界面(Windows/Linux:File > Settings;Mac:Android Studio > Settings)
  • 导航到Editor > Code Style > Formatter Control
  • 勾选Enable formatter markers in comments选项,然后点击Apply保存设置

关于构建前lint触发的格式化

不用担心构建流程里的自动格式化会破坏你的排版——因为lint调用的是IDE内置的格式化引擎,只要你正确添加了上述注释标记,这段代码就会被忽略,完全保留你自定义的缩进和排版。如果之后你想恢复这段代码的自动格式化,只需要删除这两个注释开关就行,非常灵活。

内容的提问来源于stack exchange,提问作者Joel Broström

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:33:12