Заказ атрибутов XML в Android Studio
Я столкнулся с проблемой сохранения правильного порядка атрибутов XML в Android Studio. Как вы можете видеть ниже, атрибут 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>
Ответы
Ответ 1
Наконец-то получил.
- Выберите
File > Settings > Code Style > XML > Set from > Predefined Style > Android
- Установить
File > Settings > Editor > Formatting > Show "Reformat Code" dialog
- Запустите форматирование в файле XML (
CTRL+ALT+L
по умолчанию)
- Вы увидите всплывающее окно, установите флаг
Rearrange entries
- Отключить диалог
Reformat Code
в настройках
Таким образом, каждое форматирование XML файлов будет устанавливать атрибуты в правильном порядке.
Изменить:
Начиная с версии Android Studio 0.2.6 формат форматирования XML-Android устанавливается по умолчанию, но вы все равно должны установить флаг Rearrange entries
вручную.
http://tools.android.com/recent/androidstudio026released
Автоматически применять стиль кода Android XML, если стиль кода не уже настроены. Это позволит автоматически (установите флажок "Переставить записи" в Диалоговое окно "Код > Реформат...".
Ответ 2
ОБНОВЛЕНИЕ: метод, который я описал ниже, является официальным способом решения этой известной проблемы, см.: https://developer.android.com/studio/releases
После обновления до новейшего Android Studio v3.4.2
я обнаружил, что он больше не правильно форматирует код XML. Например, attributes ordering didn't work in layouts
. Он делал только отступы и упорядочение пространств имен.
Я не знаю причину, по которой он сломался после обновления, но мне повезло исправить это:
- Перейдите в
Settings
(CMD
+
,
) на Mac.
- Введите
format
в поле поиска и нажмите на настройку Editor -> XML
.
- Нажмите на вкладку
Android
и выполните те же настройки, что и на картинке:
Настройки на картинке вполне нормальные, но, конечно, вы можете настроить эту вкладку под себя.
- Перейдите на вкладку
Arrangement
, и вы увидите что-то вроде этого:
Причина, по которой атрибуты не сортируются - правила сортировки пусты.
Чтобы это исправить:
- Выберите
Scheme
и поиграйте с опциями Default IDE
и Project
. Переключение между ними может помочь.
- Или выберите
Scheme
, который соответствует вашим потребностям, а затем нажмите Set from...
синий текст в правом верхнем углу -> Predefined Style -> Android
. Вы увидите восстановленные правила в окне:
Я также выбрал Force rearrange - Always
Чтобы сохранить результат - нажмите Apply
.
Также вы можете нажать на значок шестеренки рядом с Scheme
и скопировать настройки или даже восстановить настройки по умолчанию.
Постскриптум Для меня стандартные правила удобны, но их можно настраивать и дальше. Вот статья, которая может помочь сделать это: https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc
Ответ 3
Чтобы удалить пустые строки между ними:
Настройки > Стиль кодa > XML > Другое > Сохранять пустые строки: 0
И затем просто переформатируйте ваши XML файлы.
Ответ 4
Есть плагин для IntelliJ, который может сделать то, что вы после...
http://plugins.jetbrains.com/plugin/?idea&pluginId=6546
Ответ 5
Файл> Настройки> Редактор> XML> Расположение Выберите Схему и выберите По умолчанию