【问题标题】:XML attributes order in Android StudioAndroid Studio 中的 XML 属性顺序
【发布时间】:2013-08-14 21:18:25
【问题描述】:

在 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中的布局预览有bug,否则对于ConstraintLayouts,布局是依赖于属性的顺序的。例如,如果我将 layout_height 和 layout_width 放在constraintX_toYof 之后,那么我得到的结果与不这样做的结果不同。

标签: android-studio code-formatting


【解决方案1】:

终于明白了。

  1. 选择File &gt; Settings &gt; Code Style &gt; XML &gt; Set from &gt; Predefined Style &gt; Android
  2. 设置File &gt; Settings &gt; Editor &gt; Formatting &gt; 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 属性(选中“重新排列条目”复选框 “代码 > 重新格式化代码...”对话框。)

【讨论】:

  • 它重新排列属性,但不会删除它们之间的空行
  • 对于ubuntu它的CTRL+Shift+ALT+L
  • 键盘快捷键可能因平台和配置而异。要检查或更改它,请转到设置 -> 键盘映射 -> 重新格式化代码
  • 此答案已过时,第二个数字已更改。使用 Ctrl + Alt + Shift + L。
【解决方案2】:

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

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

我不知道更新后它被破坏的原因,但幸运地修复了这个问题:

  1. 在 Mac 上转到 Settings (CMD + , )。
  2. 在搜索框中输入format,然后点击Editor -&gt; XML设置。
  3. 单击Android 选项卡并在此处进行与图片相同的设置:

图片上的设置很正常,不过你当然可以根据自己的喜好调整这个标签的设置。

  1. 转到Arrangement 标签,您会看到如下内容:

属性未排序的原因 - 排序规则为空。

  1. 解决这个问题:

    1. 选择Scheme 并使用Default IDEProject 选项。在它们之间切换可能会有所帮助。
    2. 或选择适合您需求的Scheme,然后点击右上角的Set from...蓝色文字-&gt; Predefined Style -&gt; Android。您将在窗口中看到已恢复的规则:

我也选了Force rearrange - Always

要保存结果 - 点击Apply

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

附:对我来说,标准规则很舒服,但可以进一步定制。这是一篇可能有助于做到这一点的文章:https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      删除它们之间的空行:

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

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

      【讨论】:

      • 非常适合我。小部件之间有空行,但小部件代码内部没有。
      • 如何在android studio中格式化xml文件? ctrl+alt+L 在 mac 中对我不起作用
      【解决方案5】:

      有一个用于 IntelliJ 的插件,可以满足您的需求...

      http://plugins.jetbrains.com/plugin/?idea&pluginId=6546

      【讨论】:

      • 我正在使用这个插件来格式化 Java 源代码,但它不能格式化 XML 文件。
      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 2017-02-26
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 2014-02-27
        • 2014-12-18
        • 2013-04-08
        • 1970-01-01
        相关资源
        最近更新 更多