Nhận xét trong Giao diện Android xml


144

Tôi muốn nhập một số nhận xét vào các tệp XML bố cục, tôi sẽ làm như thế nào?

Câu trả lời:


252

Như đã nói, nhận xét trong XML là như thế này

<!-- this is a comment -->

Lưu ý rằng chúng có thể trải dài trên nhiều dòng

<!--
    This is a comment
    on multiple lines
-->

Nhưng chúng không thể được lồng

<!-- This <!-- is a comment --> This is not -->

Ngoài ra, bạn không thể sử dụng chúng trong các thẻ

<EditText <!--This is not valid--> android:layout_width="fill_parent" />

3
Ngoài ra, bạn không thể có dấu gạch ngang trong một nhận xét hoặc trình phân tích cú pháp XML sẽ khiếu nại <! - điều này - gây ra sự cố nhưng điều này - không ->
Martin Belcher - AtWrk

Nếu bạn đang sử dụng Eclipse, bạn có thể mở tệp XML, đặt con trỏ ở nơi bạn muốn nhận xét, chọn từ menu trên cùng Nguồn -> Thêm bình luận khối. Ngoài ra, "ctrl + shft + /" (nghĩa là giữ điều khiển và phím shift sau đó nhấn phím gạch chéo về phía trước). Mã nhận xét sẽ được tạo với con trỏ ở giữa, vì vậy bạn có thể bắt đầu nhập.
LeBeau

7
> Ngoài ra, bạn không thể sử dụng chúng trong các thẻ. Khá đáng tiếc thực sự.
linuxjava

38

World Wide Web Consortium (W3C) thực sự đã xác định một giao diện bình luận. Định nghĩa nói all the characters between the starting ' <!--' and ending '-->' form a part of comment content and no lexical check is done on the content of a comment.

Thêm chi tiết có sẵn trên trang web developer.android.com .

Vì vậy, bạn chỉ cần thêm nhận xét của mình vào giữa bất kỳ thẻ bắt đầu và kết thúc. Trong IDE Eclipse chỉ cần gõ <!--sẽ tự động hoàn thành nhận xét cho bạn. Sau đó, bạn có thể thêm văn bản nhận xét của bạn ở giữa.

Ví dụ:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".TicTacToe" >

 <!-- This is a comment -->

</LinearLayout>

Mục đích đề cập cụ thể in betweenlà vì bạn không thể sử dụng nó trong thẻ.

Ví dụ:

<TextView 
    android:text="@string/game_title"
    <!-- This is a comment -->
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"/>

là sai và sẽ đưa ra lỗi sau

 Element type "TextView" must be followed by either attribute specifications, ">" or "/>".

1
Lưu ý: Không có bình luận bên trong thẻ. Đây phải là câu trả lời được chọn
Eslam Sameh Ahmed

1
Gửi một cải tiến cho nhóm Android Studio. Nếu tôi sử dụng liên kết dữ liệu và muốn bình luận một dòng trong XML nơi tôi đã viết một số logic liên kết dữ liệu, tôi phải bình luận ở một nơi khác và nó không giúp ích gì cho khả năng hiển thị hoặc phần nào mà bình luận đề cập đến. Đây không phải là điều không thể làm được và nên được kích hoạt để chúng tôi (nhà phát triển) sử dụng.
Chapz ngày

19

Nhận xét XML bắt đầu bằng <!--và kết thúc bằng -->.

Ví dụ:

<!-- This is a comment. -->

10

Có hai cách bạn có thể làm điều đó

  1. Bắt đầu bình luận của bạn với "<!--"sau đó kết thúc bình luận của bạn với "-->"

    Thí dụ <!-- my comment goes here -->

  2. Đánh dấu phần bạn muốn bình luận và nhấn CTRL + SHIFT + /


9

ctrl + shift + / Bạn có thể nhận xét mã.

<!--    
     <View
          android:layout_marginTop="@dimen/d10dp"
          android:id="@+id/view1"
          android:layout_below="@+id/tv_change_password"
          android:layout_width="fill_parent"
          android:layout_height="1dp"
          android:background="#c0c0c0"/>-->


4

Có thể nhận xét các thẻ bên trong

Có thể tạo các thuộc tính tùy chỉnh có thể được sử dụng cho mục đích bình luận / tài liệu.

Trong ví dụ dưới đây, một documentation:infothuộc tính được xác định, với giá trị nhận xét mẫu:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:documentation="documentation.mycompany.com"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/relLayoutID"
    documentation:info="This is an example comment" >

    <TextView
        documentation:purpose="Instructions label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click here to begin."
        android:id="@+id/tvMyLabel"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        documentation:info="Another example comment"
        documentation:translation_notes="This control should use the fewest characters possible, as space is limited"
        />

</RelativeLayout>

Lưu ý rằng trong trường hợp này, documentation.mycompany.comchỉ là một định nghĩa cho không gian tên XML tùy chỉnh mới documentationvà do đó chỉ là một chuỗi URI duy nhất - nó có thể là bất cứ thứ gì miễn là nó là duy nhất. Bên documentationphải của xmlns:cũng có thể là bất cứ điều gì - điều này hoạt động giống như cách mà android:không gian tên XML được định nghĩa và sử dụng.

Sử dụng định dạng này, bất kỳ số lượng thuộc tính nào cũng có thể được tạo, chẳng hạn như documentation:info, documentation:translation_notesv.v., cùng với giá trị mô tả, định dạng giống với bất kỳ thuộc tính XML nào.

Tóm tắt:

  • Thêm một xmls:my_new_namespacethuộc tính cho phần tử XML gốc (cấp cao nhất) trong tệp bố cục XML. Đặt giá trị của nó thành một chuỗi duy nhất
  • Trong bất kỳ phần tử XML con nào trong tệp, hãy sử dụng không gian tên mới và bất kỳ từ nào theo sau để xác định các thẻ nhận xét bị bỏ qua khi biên dịch, ví dụ: <TextView my_new_namespace:my_new_doc_property="description" />

1
Lưu ý rằng các thuộc tính này sẽ không bị loại bỏ trong quá trình xây dựng mà thay vào đó sẽ được lưu trữ bên trong APK kết quả. tools:Thay vào đó, hãy xem xét sử dụng không gian tên đặc biệt để loại bỏ. (Có lẽ nó không tồn tại khi câu trả lời này được đăng, nhưng trang này tiếp tục có người xem mới.)
j__m

@j__m Đây là một điểm tốt. Tôi chưa xem xét liệu ProGuard có thể tự động xóa cái này hay với một chút cấu hình ...
CJBS

4

Nếu bạn muốn bình luận Android Studiochỉ cần nhấn:

Ctrl+ /trên Windows / Linux

Cmd+ /trên máy Mac.

Điều này hoạt động trong các tệp XML strings.xmlnhư cũng như trong các tệp mã như MainActivity.java.


3

nhấn vào

ctrl + ca + /

và viết bất cứ điều gì bạn và evrything sẽ được bình luận


0

bạn cũng có thể thêm nhận xét bằng cách nhấn Ctrl + shift + / và shift + / cho một dòng.


0

Không thể tin được, vào năm 2019 với Android studio 3.3 (tôi không biết phiên bản chính xác, ít nhất là 3,3), có thể sử dụng nhận xét gạch chéo kép cho xml.

Nhưng nếu bạn sử dụng nhận xét gạch chéo kép trong xml, IDE sẽ hiển thị cảnh báo.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    // this works

    /* this works too */

    /*
    multi line comment
    multi line comment
    */

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World! yeah"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Nó sẽ hiển thị cảnh báo Unexpected text found in layout file: ....
CoolMind

-2

Từ ghi chú của Federico Culloca:

Ngoài ra, bạn không thể sử dụng chúng trong các thẻ

Có nghĩa; bạn phải đặt nhận xét ở trên cùng hoặc dưới cùng của tệp - tất cả các vị trí bạn thực sự muốn thêm nhận xét ít nhất là trong thẻ bố cục cấp cao nhất


9
Nó không có nghĩa này. Bạn hoàn toàn có thể đặt một bình luận ở đâu đó ở giữa tập tin. Nó chỉ cần ở giữa các thẻ khác.
Alex Che

Cụ thể hơn, chúng phải theo thứ tự này: thẻ đóng của phần tử n, nhận xét, thẻ mở của phần tử n + 1.
ban-geengineering
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.