Kolejność atrybutów XML w Android Studio

84

Mam problem z utrzymaniem właściwej kolejności atrybutów XML w Android Studio. Jak widać poniżej, styleatrybut znajduje się między layout_*atrybutami, ale chcę, aby był uporządkowany według nazwy (jak w Eclipse). Używam standardowego programu formatującego kod Intellij, a Android Studio daje użytkownikom możliwość ustawiania własnych reguł dotyczących zamawiania XML. Ustawienia znajdują się w Code Style -> XML -> Arrangement, ale wygląda na to, że nie działają lub nieprawidłowo go używam. Jakieś pomysły, jak uporządkować atrybuty XML według nazwy przy użyciu domyślnego programu formatującego kod?

<TestView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    style="@style/BackgroundLight"
    android:layout_height="wrap_content">

</TestView>
tomrozb
źródło
Zwróć uwagę, że o ile nie ma błędu w podglądzie układu w Android Studio, wówczas w przypadku ConstraintLayouts układ zależy od kolejności atrybutów. Na przykład, jeśli wstawię layout_height i layout_width po constraintX_toYof, otrzymam inny wynik niż gdybym tego nie zrobił.
nsandersen

Odpowiedzi:

188

W końcu to dostałem.

  1. Wybierać File > Settings > Code Style > XML > Set from > Predefined Style > Android
  2. Zestaw File > Settings > Editor > Formatting > Show "Reformat Code" dialog
  3. Uruchom formatowanie pliku XML ( CTRL+ALT+Ldomyślnie)
  4. Zobaczysz wyskakujące okienko, ustaw Rearrange entriesflagę
  5. Wyłącz Reformat Codeokno dialogowe w ustawieniach

W ten sposób każde formatowanie pliku XML ustawi atrybuty w odpowiedniej kolejności.

Edycja: Począwszy od wersji Android Studio 0.2.6, formatowanie XML w stylu Androida jest ustawione domyślnie, ale nadal musisz ustawić Rearrange Entriesflagę ręcznie.

http://tools.android.com/recent/androidstudio026released

Automatycznie zastosuj styl kodu XML systemu Android, jeśli styl kodu nie został jeszcze dostosowany. Umożliwi to automatyczne porządkowanie atrybutów XML (zaznacz pole wyboru „Zmień kolejność wpisów” w oknie dialogowym „Kod> Przeformatuj kod ...”).

tomrozb
źródło
1
Przestawia atrybuty, ale nie usuwa pustych wierszy między nimi
Maksim Dmitriev
1
dla ubuntu jego CTRL + Shift + ALT + L
H Raval
Skrót klawiaturowy może się różnić w zależności od platformy i konfiguracji. Aby to sprawdzić lub zmienić, przejdź do Ustawienia -> Mapa klawiszy -> Przeformatuj kod
TheIT
Ta odpowiedź jest nieaktualna, druga liczba uległa zmianie. Użyj Ctrl + Alt + Shift + L.
CoolMind,
22

AKTUALIZACJA: metoda, którą opisałem poniżej, jest oficjalnym sposobem rozwiązania tego znanego problemu, zobacz: https://developer.android.com/studio/releases

Po aktualizacji do najnowszej Android Studio v3.4.2stwierdziłem, że nie formatuje już poprawnie kodu XML. Na przykład attributes ordering didn't work in layouts. Robił tylko wcięcia i porządkowanie przestrzeni nazw.

Nie wiem, dlaczego został uszkodzony po aktualizacji, ale udało mi się to naprawić:

  1. Przejdź do Settings( CMD + ,) na komputerze Mac.
  2. Wpisz formatw polu wyszukiwania i kliknij Editor -> XMLustawienie.
  3. Kliknij Androidkartę i wprowadź te same ustawienia, jak na obrazku:

Karta Android w ustawieniach formatowania XML Ustawienia na obrazie są całkiem normalne, ale oczywiście możesz dostosować tę kartę do siebie.

  1. Przejdź do Arrangementzakładki, a zobaczysz coś takiego:

Karta Rozmieszczenie w ustawieniu formatowania XML Powód, dla którego atrybuty nie są sortowane - reguły sortowania są puste.

  1. Aby to naprawić:

    1. Wybierz Schemei graj z opcjami Default IDEi Project. Może pomóc przełączanie się między nimi.
    2. Lub wybierz, Schemektóry odpowiada Twoim potrzebom, a następnie kliknij Set from...niebieski tekst w prawym górnym rogu -> Predefined Style -> Android. W oknie zobaczysz przywrócone reguły:

Wreszcie zobaczysz tutaj przywrócone reguły Ja też wybrałem Force rearrange - Always

Aby zapisać wynik - kliknij Apply.

Możesz także kliknąć ikonę koła zębatego obok Schemei skopiować ustawienia, a nawet przywrócić wartości domyślne.

PS Standardowe zasady są dla mnie wygodne, ale można je dodatkowo dostosować. Oto artykuł, który może w tym pomóc: https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc

oksydowane
źródło
6

Przejdź do XML swojego układu.
Spróbuj Ctrl + alt + shift + L, a następnie znajdź etykietę pola wyboru Zmień układ kodu i zaznacz jego.

Infomaster
źródło
5

Aby usunąć puste wiersze między nimi:

Preferencje> Styl kodu> XML> Inne> Pozostaw puste wiersze: 0

A potem po prostu sformatuj swoje pliki XML.

Pablo Espantoso
źródło
1
na mnie działa bardzo dobrze. Między widżetami znajdują się puste linie, ale nie ma ich w kodzie widżetu.
Matwosk,
Jak formatować pliki xml w Android Studio? ctrl + alt + L nie działa dla mnie na mac
Rethinavel
0

Plik> Ustawienia> Edytor> XML> Układ Wybierz schemat i wybierz Domyślny

cthoughtz
źródło