Порядок атрибутів XML в Android Studio


84

Я стикаюся з проблемою збереження належного порядку атрибутів 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>

Зауважте, що якщо в попередньому перегляді макета в Android Studio немає помилки, то для ConstraintLayouts макет залежить від порядку атрибутів. Наприклад, якщо я ставлю layout_height і layout_width після constraintX_toYof, то я отримую інший результат, ніж якщо цього не робити.
nsandersen

Відповіді:


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
Він переставляє атрибути, але не видаляє порожні рядки між ними
Максим Дмитрієв

1
для ubuntu його CTRL + Shift + ALT + L
H Раваль

Комбінація клавіш може змінюватися залежно від платформи та конфігурації. Щоб перевірити або змінити це, перейдіть до Налаштування -> Карта клавіш -> Код переформатування
TheIT

Ця відповідь застаріла, друге число змінено. Використовуйте 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. Перейдіть до Settings( CMD + ,) на Mac.
  2. Введіть formatу вікно пошуку та натисніть на Editor -> XMLналаштування.
  3. Клацніть на Androidвкладку і зробіть ті самі налаштування, що і на малюнку:

Вкладка Android у налаштуваннях форматування XML Налаштування зображення цілком нормальні, але, звичайно, ви можете налаштувати цю вкладку відповідно до вас.

  1. Перейдіть на Arrangementвкладку, і ви побачите щось подібне:

Вкладка Розміщення в налаштуваннях форматування XML Причина, чому атрибути не сортуються - правила сортування порожні.

  1. Щоб це виправити:

    1. Вибирайте Schemeта грайте з ними Default IDEта Projectваріанти. Переключення між ними може допомогти.
    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
працює для мене дуже добре. Між віджетами є порожні рядки, але не всередині коду віджета.
Матвоск

Як відформатувати XML-файли в Android Studio? ctrl + alt + L не працює для мене в mac
Ретінавел


0

Файл> Налаштування> Редактор> XML> Розташування Виберіть схему та виберіть За замовчуванням

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.