Android Studio의 XML 속성 순서


84

Android Studio에서 XML 속성의 올바른 순서를 유지하는 데 문제가 있습니다. 아래에서 볼 수 있듯이 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의 경우 레이아웃은 속성 순서에 따라 달라집니다. 예를 들어 constraintX_toYof 뒤에 layout_height 및 layout_width를 넣으면 그렇지 않은 경우와 다른 결과를 얻습니다.
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/androidstudio026released

코드 스타일이 아직 사용자 지정되지 않은 경우 Android XML 코드 스타일을 자동으로 적용합니다. 이렇게하면 XML 속성을 자동으로 정렬 할 수 있습니다 ( "코드> 코드 재 형식화 ..."대화 상자에서 "항목 다시 정렬"확인란을 선택하십시오).


1
이 속성을 재 배열,하지만 그들 사이에 빈 행을 삭제하지 않습니다
막심 드미트리에게

1
우분투의 경우 CTRL + Shift + ALT + L
H Raval

키보드 단축키는 플랫폼 및 구성에 따라 다를 수 있습니다. 확인하거나 설정으로 이동 변경하려면 -> 키맵 -> 재 포맷 코드
TheIT

이 답변은 구식이며 두 번째 숫자가 변경되었습니다. 사용 Ctrl + Alt + 시프트 + L.
CoolMind

22

업데이트 : 아래에 설명 된 방법은이 알려진 문제를 해결하는 공식적인 방법입니다. https://developer.android.com/studio/releases를 참조하십시오.

최신으로 업데이트 한 후 Android Studio v3.4.2더 이상 XML 코드의 형식을 올바르게 지정하지 않는다는 것을 알았습니다. 예를 들어 attributes ordering didn't work in layouts. 들여 쓰기와 네임 스페이스 순서 만했습니다.

업데이트 후 고장난 이유는 모르겠지만이 문제를 고쳐서 운이 좋았습니다.

  1. Mac 에서 Settings( CMD + ,)로 이동합니다 .
  2. 입력 format검색 상자 및 클릭 Editor -> XML설정.
  3. Android탭을 클릭하고 여기에서 사진과 동일한 설정을 지정합니다.

XML 서식 설정의 Android 탭 사진의 설정은 매우 일반적이지만 물론이 탭 설정을 조정할 수 있습니다.

  1. Arrangement탭으로 이동하면 다음과 같은 내용이 표시됩니다.

XML 서식 설정의 정렬 탭 속성이 정렬되지 않는 이유-정렬 규칙이 비어 있습니다.

  1. 이 문제를 해결하려면 :

    1. 및 옵션을 선택 Scheme하고 재생 하십시오 . 그들 사이를 전환하면 도움이 될 수 있습니다.Default IDEProject
    2. 또는 Scheme필요한 제품군을 선택한 다음 Set from...오른쪽 상단 모서리 에있는 파란색 텍스트 를 클릭합니다 -> Predefined Style -> Android. 창에 복원 된 규칙이 표시됩니다.

마지막으로 여기에 복원 된 규칙이 표시됩니다. 나는 또한 선택했다 Force rearrange - Always

결과를 저장하려면 –을 클릭하십시오 Apply.

또한 근처의 기어 아이콘을 클릭 Scheme하고 설정을 복사하거나 기본값을 복원 할 수도 있습니다.

추신 : 나에게 표준 규칙은 편안하지만 더 사용자 정의 할 수 있습니다. 여기에 도움이 될 수있는 기사가 있습니다 : https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc


6

레이아웃 XML로 이동 Ctrl + alt + shift + L
시도한 다음 확인란 레이블이 코드 재정렬 임을 찾아서 확인하십시오.


5

그들 사이의 빈 줄을 삭제하려면 :

환경 설정> 코드 스타일> XML> 기타> 빈 줄 유지 : 0

그런 다음 XML 파일의 형식을 다시 지정하십시오.


1
나를 위해 아주 잘 작동합니다. 위젯 사이에는 빈 줄이 있지만 위젯 코드 내부에는 없습니다.
Matwosk

Android Studio에서 XML 파일을 포맷하는 방법은 무엇입니까? ctrl + alt + L이 Mac에서 작동하지 않음
Rethinavel


0

파일> 설정> 편집기> XML> 배열 구성표를 선택하고 기본값을 선택합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.