Thứ tự các thuộc tính XML trong Android Studio


84

Tôi đang gặp vấn đề với việc giữ thứ tự thích hợp của các thuộc tính XML trong Android Studio. Như bạn có thể thấy bên dưới, stylethuộc tính nằm giữa các layout_*thuộc tính, nhưng tôi muốn nó được sắp xếp theo tên (như trong Eclipse). Tôi đang sử dụng trình định dạng mã Intellij tiêu chuẩn và Android Studio cung cấp cho người dùng khả năng thiết lập các quy tắc của riêng bạn về thứ tự XML. Các cài đặt được đặt trong Code Style -> XML -> Arrangementnhưng có vẻ như nó không hoạt động hoặc tôi đang sử dụng sai. Bất kỳ ý tưởng nào về cách sắp xếp các thuộc tính XML theo tên bằng cách sử dụng trình định dạng mã mặc định?

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

</TestView>

Lưu ý rằng trừ khi có lỗi trong bản xem trước bố cục trong Android Studio, thì đối với ConstraintLayouts, bố cục phụ thuộc vào thứ tự của các thuộc tính. Ví dụ: nếu tôi đặt layout_height và layout_width sau bindX_toYof, thì tôi nhận được kết quả khác với nếu không.
nsandersen

Câu trả lời:


188

Cuối cùng cũng hiểu.

  1. Chọn File > Settings > Code Style > XML > Set from > Predefined Style > Android
  2. Bộ File > Settings > Editor > Formatting > Show "Reformat Code" dialog
  3. Chạy định dạng trên tệp XML ( CTRL+ALT+Ltheo mặc định)
  4. Bạn sẽ thấy một cửa sổ bật lên, hãy đặt Rearrange entriescờ
  5. Tắt Reformat Codehộp thoại trong cài đặt

Bằng cách này, mọi định dạng tệp XML sẽ đặt các thuộc tính theo thứ tự thích hợp.

Chỉnh sửa: Bắt đầu với bản phát hành Android Studio 0.2.6, định dạng kiểu Android XML được đặt theo mặc định, nhưng bạn vẫn phải đặt Rearrange Entriescờ theo cách thủ công.

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

Tự động áp dụng kiểu mã XML của Android nếu kiểu mã chưa được tùy chỉnh. Điều này sẽ giúp bạn có thể tự động sắp xếp các thuộc tính XML (chọn hộp kiểm "Sắp xếp lại các mục nhập" trong hộp thoại "Mã> Định dạng lại mã ...".)


1
Nó sắp xếp lại các thuộc tính, nhưng nó không xóa dòng trống giữa chúng
Maksim Dmitriev

1
đối với ubuntu, CTRL + Shift + ALT + L
H Raval của nó là

Phím tắt có thể khác nhau tùy thuộc vào nền tảng và cấu hình. Để kiểm tra hoặc thay đổi nó vào Settings -> Keymap -> Định dạng lại Mã
TheIT

Câu trả lời này đã lỗi thời, số thứ 2 đã thay đổi. Sử dụng Ctrl + Alt + Shift + L.
CoolMind

22

CẬP NHẬT: phương pháp tôi mô tả bên dưới là cách chính thức để khắc phục sự cố đã biết này, hãy xem: https://developer.android.com/studio/releases

Sau khi cập nhật lên phiên bản mới nhất, Android Studio v3.4.2tôi thấy rằng nó không định dạng mã XML đúng nữa. Ví dụ attributes ordering didn't work in layouts,. Nó chỉ thụt lề và sắp xếp không gian tên.

Tôi không biết lý do tại sao nó bị hỏng sau khi cập nhật nhưng rất may đã sửa được điều này:

  1. Đi tới Settings( CMD + ,) trên Mac.
  2. Nhập formatvào hộp Tìm kiếm và nhấp vào Editor -> XMLcài đặt.
  3. Nhấp vào Androidtab và thực hiện các cài đặt tương tự ở đây như trên hình ảnh:

Tab Android trong Cài đặt định dạng XML Cài đặt trên ảnh khá bình thường, nhưng tất nhiên bạn có thể điều chỉnh cài đặt tab này theo ý mình.

  1. Đi tới Arrangementtab và bạn sẽ thấy một cái gì đó như sau:

Tab sắp xếp trong cài đặt định dạng XML Lý do tại sao các thuộc tính không được sắp xếp - các quy tắc sắp xếp trống.

  1. Để khắc phục điều này:

    1. Chọn Schemevà chơi với Default IDEProjectcác tùy chọn. Chuyển đổi giữa chúng có thể hữu ích.
    2. Hoặc chọn Schemebộ phù hợp với nhu cầu của bạn và sau đó nhấp vào Set from...văn bản màu xanh lam ở góc trên bên phải -> Predefined Style -> Android. Bạn sẽ thấy các quy tắc được khôi phục trong cửa sổ:

Cuối cùng, bạn sẽ thấy các quy tắc được khôi phục tại đây Tôi cũng đã chọn Force rearrange - Always

Để lưu kết quả - hãy nhấp vào Apply.

Ngoài ra, bạn có thể nhấp vào biểu tượng bánh răng ở gần Schemevà sao chép cài đặt hoặc thậm chí khôi phục cài đặt mặc định.

PS Đối với tôi các quy tắc tiêu chuẩn là thoải mái, nhưng nó có thể được tùy chỉnh thêm. Đây là một bài viết có thể giúp thực hiện việc này: https://medium.com/@VeraKern/formatting-xml-layout-files-for-android-47aec62722fc


6

Chuyển đến bố cục của bạn XML
Thử Ctrl + alt + shift + L sau đó tìm nhãn hộp kiểm là Sắp xếp lại mã và kiểm tra nó.


5

Để xóa các dòng trống giữa chúng:

Tùy chọn> Kiểu mã> XML> Khác> Giữ dòng trống: 0

Và sau đó chỉ cần định dạng lại các tệp XML của bạn.


1
làm việc cho tôi rất tốt. Có các dòng trống giữa các widget nhưng không có mã bên trong widget.
Matwosk

Làm thế nào để định dạng tệp xml trong studio android? ctrl + alt + L không hoạt động đối với tôi trong mac
Rethinavel


0

Tệp> Cài đặt> Trình chỉnh sửa> XML> Sắp xếp Chọn Lược đồ và chọn Mặc định

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.