Android Studio中的XML属性顺序

tom*_*ozb 77 code-formatting android-studio

我在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>
Run Code Online (Sandbox Code Playgroud)

tom*_*ozb 184

终于明白了.

  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/androidstudio026released

如果尚未自定义代码样式,则自动应用Android XML代码样式.这样就可以自动订购XML属性(选中"代码>重新格式代码..."对话框中的"重新排列条目"复选框.)


oxi*_*ied 15

更新:我下面描述的方法是解决此已知问题的官方方法,请参阅: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


Inf*_*ter 8

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


Pab*_*oso 5

要删除它们之间的空行:

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

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