Android Studio中的XML属性顺序


84

我在保持Android Studio中XML属性的正确顺序时遇到问题。如下所示,style属性介于layout_*属性之间,但我希望按名称对它进行排序(例如在Eclipse中)。我使用的是标准Intellij代码格式化程序,Android Studio使用户能够设置有关XML排序的自己的规则。设置位于中Code Style -> XML -> Arrangement,但似乎无法使用,或者我使用的是错误的。有什么想法如何使用默认代码格式化程序按名称对XML属性进行排序?

<TestView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    style="@style/BackgroundLight"
    android:layout_height="wrap_content">

</TestView>

请注意,除非Android Studio的布局预览中存在错误,否则对于ConstraintLayouts而言,布局取决于属性的顺序。例如,如果我将layout_height和layout_width放在constraintX_toYof之后,则得到的结果将与未得到的结果不同。
nsandersen

Answers:


188

终于明白了。

  1. 选择 File > Settings > Code Style > XML > Set from > Predefined Style > Android
  2. File > Settings > Editor > Formatting > Show "Reformat Code" dialog
  3. 在XML文件上运行格式设置(CTRL+ALT+L默认情况下)
  4. 您将看到一个弹出窗口,设置Rearrange entries标志
  5. Reformat Code在设置中禁用对话框

这样,每种XML文件格式都会以适当的顺序设置属性。

编辑:从Android Studio 0.2.6版本开始,默认设置XML Android样式格式,但是您仍然必须Rearrange Entries手动设置标志。

http://tools.android.com/recent/androidstudio026发布

如果尚未自定义代码样式,则自动应用Android XML代码样式。这将使自动排序XML属性成为可能(选中“代码>重新格式化代码...”对话框中的“重新排列条目”复选框。)


1
它重新排列属性,但不会删除它们之间的空行
Maksim Dmitriev

1
为ubuntu其CTRL + Shift + ALT + L
H拉瓦尔

键盘快捷方式可能会因平台和配置而异。要检查或更改其进入设置- >键盘映射- >重新格式化代码
TheIT

该答案已过时,第2个数字已更改。使用Ctrl + Alt + Shift + L.
CoolMind

22

更新:我下面描述的方法是解决此已知问题的官方方法,请参阅:https : //developer.android.com/studio/releases

更新到最新版本后,Android Studio v3.4.2我发现它不再正确格式化XML代码。例如,attributes ordering didn't work in layouts。它仅执行缩进和命名空间排序。

我不知道更新后它被打破的原因,但是很幸运地解决了这个问题:

  1. 在Mac上转到SettingsCMD + ,)。
  2. 键入format的搜索框,点击Editor -> XML设置。
  3. 单击Android选项卡,然后在此处进行与图片相同的设置:

XML格式的Android选项卡设置 图片上的设置很正常,但是您当然可以调整此选项卡设置。

  1. 转到Arrangement标签,您将看到类似以下内容:

XML格式设置中的“排列”选项卡 属性未排序的原因-排序规则为空。

  1. 要解决此问题:

    1. 选择Scheme并使用Default IDEProject选项。在它们之间切换可能会有所帮助。
    2. 或选择Scheme您需要的套件,然后单击Set from...右上角的蓝色文本-> Predefined Style -> Android。您将在窗口中看到恢复的规则:

最后,您将在此处看到恢复的规则 我也选择了 Force rearrange - Always

要保存结果–单击Apply

您也可以点击附近的齿轮图标Scheme并复制设置,甚至恢复默认设置。

PS对我来说,标准规则很舒适,但是可以进一步自定义。这是一篇可能有助于执行此操作的文章:https : //medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc


6

转到您的布局XML
尝试按Ctrl + alt + shift + L,然后找到复选框标签为重新排列代码并检查了它。


5

要删除它们之间的空行:

首选项>代码样式> XML>其他>保留空白行:0

然后重新格式化您的XML文件。


1
对我很好。小部件之间有空白行,但小部件代码内部没有空白行。
Matwosk

如何在android studio中格式化xml文件?ctrl + alt + L在Mac中对我不起作用
Rethinavel


0

文件>设置>编辑器> XML>排列选择方案并选择默认

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.