Reihenfolge der XML-Attribute in Android Studio

83

Ich habe Probleme mit der richtigen Reihenfolge der XML-Attribute in Android Studio. Wie Sie unten sehen können, befindet sich das styleAttribut zwischen layout_*Attributen, aber ich möchte, dass es nach Namen sortiert wird (wie in Eclipse). Ich verwende den Standard-Intellij-Code-Formatierer und mit Android Studio können Benutzer Ihre eigenen Regeln für die XML-Reihenfolge festlegen. Die Einstellungen befinden sich in Code Style -> XML -> Arrangement, aber es scheint nicht zu funktionieren oder ich verwende es falsch. Irgendwelche Ideen, wie man XML-Attribute mit dem Standardcode-Formatierer nach Namen ordnet?

<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
quelle
Beachten Sie, dass das Layout für ConstraintLayouts von der Reihenfolge der Attribute abhängt, es sei denn, es liegt ein Fehler in der Layoutvorschau in Android Studio vor. Wenn ich beispielsweise layout_height und layout_width nach ConstraintX_toYof setze, erhalte ich ein anderes Ergebnis als wenn ich es nicht tue.
Nsandersen

Antworten:

187

Endlich verstanden.

  1. Wählen File > Settings > Code Style > XML > Set from > Predefined Style > Android
  2. einstellen File > Settings > Editor > Formatting > Show "Reformat Code" dialog
  3. Führen Sie die Formatierung einer XML-Datei aus ( CTRL+ALT+Lstandardmäßig).
  4. Sie sehen ein Popup-Fenster, setzen Sie das Rearrange entriesFlag
  5. Reformat CodeDialog in den Einstellungen deaktivieren

Auf diese Weise werden bei jeder XML-Dateiformatierung die Attribute in der richtigen Reihenfolge festgelegt.

Bearbeiten: Ab Android Studio 0.2.6 ist die XML-Formatierung im Android-Stil standardmäßig festgelegt, Sie müssen das Rearrange EntriesFlag jedoch noch manuell setzen.

http://tools.android.com/recent/androidstudio026 veröffentlicht

Wenden Sie den Android-XML-Codestil automatisch an, wenn ein Codestil noch nicht angepasst wurde. Auf diese Weise können XML-Attribute automatisch bestellt werden (aktivieren Sie das Kontrollkästchen "Einträge neu anordnen" im Dialogfeld "Code> Code neu formatieren ...").

Tomrozb
quelle
1
Es ordnet Attribute neu an, aber es löscht keine leeren Zeilen zwischen ihnen
Maksim Dmitriev
1
für Ubuntu seine STRG + Umschalt + ALT + L
H Raval
Die Tastenkombination kann je nach Plattform und Konfiguration variieren. Um dies zu überprüfen oder zu ändern, gehen Sie zu Einstellungen -> Keymap -> Code neu
formatieren
Diese Antwort ist veraltet, 2. Nummer geändert. Verwenden Sie Strg + Alt + Umschalt + L.
CoolMind
22

UPDATE: Die unten beschriebene Methode ist eine offizielle Methode, um dieses bekannte Problem zu beheben. Siehe: https://developer.android.com/studio/releases

Nach dem Update auf das neueste stellte Android Studio v3.4.2ich fest, dass der XML-Code nicht mehr richtig formatiert wird. Zum Beispiel attributes ordering didn't work in layouts. Es wurden nur Einrückungen und Namespaces bestellt.

Ich weiß nicht, warum es nach einem Update kaputt war, hatte aber das Glück, dies zu beheben:

  1. Gehe zu SettingsCMD + , auf dem Mac ( ).
  2. Geben Sie formatin das Suchfeld ein und klicken Sie auf Editor -> XMLEinstellung.
  3. Klicken Sie auf Android Registerkarte und nehmen Sie hier die gleichen Einstellungen vor wie auf einem Bild:

Android-Registerkarte in der XML-Formatierungseinstellung Die Einstellungen für ein Bild sind ganz normal, aber Sie können diese Registerkarte natürlich auf Ihre Bedürfnisse abstimmen.

  1. Gehen Sie zur ArrangementRegisterkarte und Sie werden ungefähr Folgendes sehen:

Registerkarte "Anordnung" in XML-Formatierungseinstellungen Der Grund, warum Attribute nicht sortiert werden - Sortierregeln sind leer.

  1. Um dies zu beheben:

    1. Wähle Schemeund spiele mitDefault IDE undProject Optionen. Ein Wechsel zwischen ihnen kann helfen.
    2. Oder wählen Sie, Schemewelche Ihren Anforderungen entspricht, und klicken Sie dann auf den Set from...blauen Text in der rechten oberen Ecke -> Predefined Style -> Android. Im Fenster werden wiederhergestellte Regeln angezeigt:

Schließlich sehen Sie hier wiederhergestellte Regeln Ich habe auch gewählt Force rearrange - Always

Um das Ergebnis zu speichern, klicken Sie auf Apply.

Sie können auch auf ein Zahnradsymbol in der Nähe klicken Schemeund Einstellungen kopieren oder sogar die Standardeinstellungen wiederherstellen.

PS Für mich sind Standardregeln bequem, können aber weiter angepasst werden. Hier ist ein Artikel, der dabei helfen kann: https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc

oxidiert
quelle
6

Gehen Sie zu Ihrem Layout-XML.
Versuchen Sie Strg + Alt + Umschalt + L, und finden Sie dann heraus, dass die Bezeichnung des Kontrollkästchens Code neu anordnen ist .

Infomaster
quelle
5

So löschen Sie leere Zeilen zwischen ihnen:

Einstellungen> Codestil> XML> Andere> Leerzeilen beibehalten: 0

Und dann formatieren Sie einfach Ihre XML-Dateien neu.

Pablo Espantoso
quelle
1
funktioniert bei mir sehr gut. Zwischen Widgets befinden sich Leerzeilen, jedoch nicht im Widget-Code.
Matwosk
Wie formatiere ich XML-Dateien in Android Studio? Strg + Alt + L funktioniert nicht für mich in Mac
Rethinavel
0

Datei> Einstellungen> Editor> XML> Anordnung Wählen Sie Schema und dann Standard

cthoughtz
quelle