Orden de atributos XML en Android Studio

84

Tengo problemas para mantener el orden correcto de los atributos XML en Android Studio. Como puede ver a continuación, el styleatributo está entre layout_*atributos, pero quiero que se ordene por nombre (como en Eclipse). Estoy usando el formateador de código Intellij estándar y Android Studio brinda a los usuarios la capacidad de establecer sus propias reglas con respecto al orden XML. La configuración está ubicada en Code Style -> XML -> Arrangement, pero parece que no funciona o la estoy usando mal. ¿Alguna idea de cómo ordenar atributos XML por nombre usando el formateador de código predeterminado?

<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
fuente
Tenga en cuenta que, a menos que haya un error en la vista previa del diseño en Android Studio, entonces para ConstraintLayouts, el diseño depende del orden de los atributos. Por ejemplo, si pongo layout_height y layout_width después de la constricciónX_toYof, obtengo un resultado diferente que si no lo hago.
nsandersen

Respuestas:

188

Finalmente lo tengo.

  1. Escoger File > Settings > Code Style > XML > Set from > Predefined Style > Android
  2. Conjunto File > Settings > Editor > Formatting > Show "Reformat Code" dialog
  3. Ejecutar formateo en un archivo XML ( CTRL+ALT+Lpor defecto)
  4. Verá una ventana emergente, configure la Rearrange entriesbandera
  5. Deshabilitar el Reformat Codediálogo en la configuración

De esta manera, cada formato de archivo XML establecerá los atributos en el orden adecuado.

Editar: A partir de la versión 0.2.6 de Android Studio, el formato de estilo XML de Android está configurado de forma predeterminada, pero aún debe configurar la Rearrange Entriesmarca manualmente.

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

Aplicar automáticamente el estilo de código XML de Android si aún no se ha personalizado un estilo de código. Esto hará posible ordenar automáticamente los atributos XML (marque la casilla de verificación "Reorganizar entradas" en el cuadro de diálogo "Código> Reformatear código ...").

tomrozb
fuente
1
Reorganiza los atributos, pero no elimina las líneas vacías entre ellos
Maksim Dmitriev
1
para ubuntu es CTRL + Shift + ALT + L
H Raval
El método abreviado de teclado puede variar según la plataforma y la configuración. Para verificarlo o cambiarlo, vaya a Configuración -> Mapa de teclas -> Reformatear código
TheIT
Esta respuesta está desactualizada, el segundo número cambió. Use Ctrl + Alt + Shift + L.
CoolMind
22

ACTUALIZACIÓN: el método que describí a continuación es una forma oficial de solucionar este problema conocido, consulte: https://developer.android.com/studio/releases

Después de actualizar a la más reciente Android Studio v3.4.2, descubrí que ya no formatea correctamente el código XML. Por ejemplo, attributes ordering didn't work in layouts. Solo hizo sangría y ordenación de espacios de nombres.

No sé la razón por la que se rompió después de una actualización, pero tuve la suerte de solucionar esto:

  1. Vaya a Settings( CMD + ,) en Mac.
  2. Escriba formaten el cuadro de búsqueda y haga clic en Editor -> XMLconfiguración.
  3. Haga clic en la Androidpestaña y realice la misma configuración aquí que en una imagen:

Pestaña de Android en la configuración de formato XML La configuración en una imagen es bastante normal, pero, por supuesto, puede ajustar esta configuración de pestaña para usted.

  1. Vaya a la Arrangementpestaña y verá algo como esto:

Ficha Disposición en configuración de formatos XML La razón por la que los atributos no se ordenan: las reglas de clasificación están vacías.

  1. Para arreglar esto:

    1. Elegir Schemey jugar con Default IDEy Projectopciones. Cambiar entre ellos puede ayudar.
    2. O elija Schemequé se adapta a sus necesidades y luego haga clic en Set from...el texto azul en la esquina superior derecha -> Predefined Style -> Android. Verá las reglas restauradas en la ventana:

Finalmente, verá las reglas restauradas aquí. Yo también elegí Force rearrange - Always

Para guardar el resultado, haga clic en Apply.

También puede hacer clic en un icono de engranaje cerca Schemey copiar la configuración o incluso restaurar los valores predeterminados.

PD: Para mí, las reglas estándar son cómodas, pero se pueden personalizar aún más. Aquí hay un artículo que puede ayudar a hacer esto: https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc

oxidado
fuente
6

Vaya a su diseño XML
Pruebe Ctrl + alt + shift + L luego busque la etiqueta de la casilla de verificación es Reorganizar el código y verifique su.

Infomaster
fuente
5

Para eliminar líneas vacías entre ellos:

Preferencias> Estilo de código> XML> Otro> Mantener líneas en blanco: 0

Y luego simplemente reformatee sus archivos XML.

Pablo Espantoso
fuente
1
funciona muy bien para mi. Hay líneas en blanco entre los widgets pero no dentro del código del widget.
Matwosk
¿Cómo formatear archivos xml en android studio? ctrl + alt + L no me funciona en mac
Rethinavel
0

Archivo> Configuración> Editor> XML> Arreglo Seleccione Esquema y elija Predeterminado

cthoughtz
fuente