Android Studio3.5 xml文件格式化(Reformat Code)后元素会自动排序的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/choimroc/article/details/100010267

升级到Android Studio3.5 后,发现在xml文件使用Reformat Code时元素会自动排序。

  1. 首先怀疑是配置文件的问题,但是删了配置文件后,重新打开还是一样。
  2. 马上找了另外两台机子,同样升级到Android Studio3.5,发现出现同样的问题。
  3. 接着去官网看更新的blog,没有发现有帮助的信息。
  4. 找了一台未安装Android Studio的机子,下载了3.5版本安装,出现一样的问题。
  5. 一般跟格式化相关的配置都是在Settings -> Code Style里面。跟3.4.2版本的进行比较,没发现有什么不同的地方。
  6. 尝试一下重新设置预定义样式,保存后再次格式化代码,发现不会再自动排序。接着在其他几台机子上尝试操作,确实不会再出现了,但是具体原因未知,可能是版本的bug。

具体操作步骤如下:

一、打开Settings -> Code Style

二、点击右上角的Set from->Predefined Style->Android
在这里插入图片描述
三、点击下面的OK保存设置,再次使用Reformat Code,问题解决!


关于网上另一个解决方案(Rearrange code)

这个方法一开始我就使用过,虽然元素确实不会再排序了,但是xml的属性也同样不再排序了。这个属性无论是在3.4,还是在3.3的版本都是勾选上的,因为Rearrange code其实主要是用来对xml元素的属性进行排序的,而它的排序规则就是XML->Arrangement
在这里插入图片描述
比如我们正常格式化后的代码是这样的:

<TextView
    android:id="@+id/textview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ff0000"
    android:gravity="center"
    android:text="Hello World"
    android:textColor="#ffffff"
    android:textSize="18sp" />

而禁用Rearrange code后就会导致我们的属性不会按上面说到的规则进行排序,而是你写在哪个位置那Reformat Code后也还是在哪个位置。比如这样

<TextView
    android:id="@+id/textview"
    android:gravity="center"
    android:text="Hello World"
    android:textColor="#ffffff"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ff0000"
    android:textSize="18sp" />

如果你能忍受这样的代码,禁用Rearrange code也是可以的。


记录,分享,交流。

猜你喜欢

转载自blog.csdn.net/choimroc/article/details/100010267