Ordine degli attributi XML in Android Studio


84

Sto riscontrando problemi con il mantenimento dell'ordine corretto degli attributi XML in Android Studio. Come puoi vedere di seguito, l' styleattributo è tra layout_*attributi, ma voglio che sia ordinato per nome (come in Eclipse). Sto usando il formattatore di codice Intellij standard e Android Studio offre agli utenti la possibilità di impostare le proprie regole relative all'ordinamento XML. Le impostazioni si trovano in Code Style -> XML -> Arrangement, ma sembra non funzionare o lo sto usando in modo sbagliato. Qualche idea su come ordinare gli attributi XML in base al nome utilizzando il formattatore di codice predefinito?

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

</TestView>

Tieni presente che, a meno che non sia presente un bug nell'anteprima del layout in Android Studio, per ConstraintLayouts il layout dipende dall'ordine degli attributi. Ad esempio, se metto layout_height e layout_width dopo constraintX_toYof, ottengo un risultato diverso rispetto a se non lo faccio.
nsandersen

Risposte:


188

Finalmente capito.

  1. Scegliere File > Settings > Code Style > XML > Set from > Predefined Style > Android
  2. Impostato File > Settings > Editor > Formatting > Show "Reformat Code" dialog
  3. Esegui la formattazione su un file XML ( CTRL+ALT+Lper impostazione predefinita)
  4. Vedrai una finestra popup, imposta la Rearrange entriesbandiera
  5. Disabilita la Reformat Codefinestra di dialogo nelle impostazioni

In questo modo ogni formattazione di file XML imposterà gli attributi in un ordine corretto.

Modifica: a partire dalla versione di Android Studio 0.2.6, la formattazione in stile Android XML è impostata per impostazione predefinita, ma è comunque necessario impostare Rearrange Entriesmanualmente il flag.

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

Applica automaticamente lo stile di codice XML Android se uno stile di codice non è già stato personalizzato. Ciò renderà possibile ordinare automaticamente gli attributi XML (seleziona la casella di controllo "Riordina voci" nella finestra di dialogo "Codice> Riformatta codice ...".)


1
Riorganizza gli attributi, ma non elimina le linee vuote tra di loro
Maksim Dmitriev

1
per ubuntu è CTRL + Maiusc + ALT + L
H Raval

La scorciatoia da tastiera può variare a seconda della piattaforma e della configurazione. Per verificarlo o modificarlo vai su Impostazioni -> Mappa tasti -> Codice di riformattazione
TheIT

Questa risposta è obsoleta, il 2 ° numero è cambiato. Usa Ctrl + Alt + Maiusc + L.
CoolMind

24

AGGIORNAMENTO: il metodo che ho descritto di seguito è un modo ufficiale per risolvere questo problema noto, vedere: https://developer.android.com/studio/releases

Dopo l'aggiornamento alla più recente, Android Studio v3.4.2ho scoperto che non formatta più correttamente il codice XML. Per esempio, attributes ordering didn't work in layouts. Faceva solo riordino e spazio dei nomi.

Non so il motivo per cui si è rotto dopo un aggiornamento, ma sono stato fortunato a risolverlo:

  1. Vai a Settings( CMD + ,) su Mac.
  2. Digita formatnella casella di ricerca e fai clic Editor -> XMLsull'impostazione.
  3. Clicca sul Android scheda e configurare le stesse impostazioni qui come su un'immagine:

Scheda Android nelle impostazioni di formattazione XML Le impostazioni su un'immagine sono abbastanza normali, ma ovviamente puoi regolare questa scheda impostandola su di te.

  1. Vai alla Arrangementscheda e vedrai qualcosa del genere:

Scheda Disposizione nelle impostazioni di formattazione XML Il motivo per cui gli attributi non vengono ordinati: le regole di ordinamento sono vuote.

  1. Per risolvere questo problema:

    1. Scegli Schemee gioca conDefault IDE e Projectopzioni. Il passaggio da uno all'altro può aiutare.
    2. Oppure scegli le Schemesuite per le tue esigenze e quindi fai clic sul Set from...testo blu nell'angolo in alto a destra -> Predefined Style -> Android. Vedrai le regole ripristinate nella finestra:

Finalmente vedrai le regole ripristinate qui Ho anche scelto Force rearrange - Always

Per salvare il risultato, fare clic su Apply.

Inoltre puoi fare clic su un'icona a forma di ingranaggio vicino Schemee copiare le impostazioni o persino ripristinare le impostazioni predefinite.

PS Per me le regole standard sono comode, ma possono essere ulteriormente personalizzate. Ecco un articolo che può aiutare a farlo: https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc


6

Vai al tuo layout XML
Prova Ctrl + Alt + Maiusc + L quindi trova l'etichetta della casella di controllo è Riorganizza il codice e controlla il suo.


5

Per eliminare le righe vuote tra di loro:

Preferenze> Stile codice> XML> Altro> Mantieni righe vuote: 0

E poi riformatta i tuoi file XML.


1
per me funziona molto bene. Sono presenti righe vuote tra i widget ma non all'interno del codice del widget.
Matwosk

Come formattare i file xml in Android Studio? ctrl + alt + L non funziona per me in mac
Rethinavel


0

File> Impostazioni> Editor> XML> Disposizione Seleziona schema e scegli Predefinito

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.