AndroidStudioでのXML属性の順序


84

AndroidStudioで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

コードスタイルがまだカスタマイズされていない場合は、AndroidXMLコードスタイルを自動的に適用します。これにより、XML属性を自動的に並べ替えることができます([コード]> [コードの再フォーマット...]ダイアログの[エントリの再配置]チェックボックスをオンにします)。


1
属性を再配置しますが、属性間の空の行は削除しません
Maksim Dmitriev

1
Ubuntuの場合、CTRL + Shift + ALT + L
H Raval 2015年

キーボードショートカットは、プラットフォームと構成によって異なる場合があります。>キーマップ- - >コードを再フォーマット設定に行くことを確認したり、変更するには
TheIT

この回答は古く、2番目の番号が変更されています。Ctrl + Alt + Shift + Lを使用します。
CoolMind19年

22

更新:以下で説明する方法は、この既知の問題を修正する公式の方法です。https//developer.android.com/studio/releasesを参照してください。

最新のものAndroid Studio v3.4.2に更新した後、XMLコードが正しくフォーマットされていないことがわかりました。例えば、attributes ordering didn't work in layouts。インデントと名前空間の順序付けのみを行いました。

更新後に壊れた理由はわかりませんが、幸運にもこれを修正できました。

  1. に移動しますSettingsCMD + ,Macでは)にます。
  2. format検索ボックスに入力して、をクリックしますEditor -> XML設定ます。
  3. Androidタブをクリックして、ここで写真と同じ設定を行います。

XMLフォーマット設定のAndroidタブ 画像の設定はごく普通ですが、もちろんこのタブの設定を自分に合わせて調整することもできます。

  1. Arrangementタブに移動すると、次のようなものが表示されます。

XMLフォーマット設定の[配置]タブ 属性がソートされない理由-ソートルールは空です。

  1. これを修正するには:

    1. 選択Schemeと一緒にプレイDefault IDEし、Projectオプションを。それらを切り替えると役立つ場合があります。
    2. またはScheme、ニーズに合ったスイートを選択してからSet from...、右上隅にある青いテキストをクリックします-> Predefined Style -> Android。ウィンドウに復元されたルールが表示されます。

最後に、復元されたルールがここに表示されます 私も選びました Force rearrange - Always

結果を保存するには–をクリックしますApply

また、近くの歯車アイコンをクリックすることもできます Scheme設定をコピーしたり、デフォルトに戻す。

PS私にとって、標準ルールは快適ですが、さらにカスタマイズすることができます。これを行うのに役立つ可能性のある記事は次のとおりです:https//medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc


6

レイアウトXMLに移動しますCtrl + alt + shift + Lを
試してから、チェックボックスラベルが[コードの再配置]であることを確認し、チェックします。


5

それらの間の空の行を削除するには:

環境設定>コードスタイル> XML>その他>空白行を保持:0

そして、XMLファイルを再フォーマットするだけです。


1
私のために非常にうまくいきます。ウィジェット間に空白行がありますが、ウィジェットコード内にはありません。
matwosk 2015

AndroidStudioでxmlファイルをフォーマットする方法は?ctrl + alt + LはMacでは機能しません
Rethinavel 2015年


0

ファイル>設定>エディター> XML>配置スキームを選択し、デフォルトを選択します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.