ความคิดเห็นใน Android Layout xml


144

ฉันต้องการจะใส่ความคิดเห็นลงในไฟล์ XML ของเลย์เอาต์ฉันจะทำอย่างไร

คำตอบ:


252

ดังที่คนอื่น ๆ กล่าวไว้ความคิดเห็นใน XML เป็นเช่นนี้

<!-- this is a comment -->

ขอให้สังเกตว่าพวกเขาสามารถขยายในหลายบรรทัด

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

แต่พวกเขาไม่สามารถซ้อนกันได้

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

นอกจากนี้คุณไม่สามารถใช้ภายในแท็ก

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

3
นอกจากนี้คุณไม่สามารถมีเครื่องหมายขีดกลางคู่ในความคิดเห็นไม่เช่นนั้นตัวแยกวิเคราะห์ XML จะบ่น <! - สิ่งนี้ - ทำให้เกิดปัญหา แต่สิ่งนี้ - ไม่ ->
Martin Belcher - AtWrk

หากคุณกำลังใช้ Eclipse คุณสามารถเปิดไฟล์ XML วางเคอร์เซอร์ในตำแหน่งที่คุณต้องการความคิดเห็นเลือกจากเมนูด้านบนที่มา -> เพิ่มความคิดเห็นที่ถูกบล็อก นอกจากนี้ "ctrl + shft + /" (นั่นคือกดปุ่มควบคุมและปุ่ม Shift ค้างไว้จากนั้นกดปุ่มฟอร์เวิร์ดสแลช) รหัสความคิดเห็นจะถูกสร้างขึ้นพร้อมเคอร์เซอร์ตรงกลางดังนั้นคุณสามารถเริ่มพิมพ์ได้
LeBeau

7
> นอกจากนี้คุณไม่สามารถใช้ภายในแท็ก ค่อนข้างโชคร้ายจริงๆ
linuxjava

38

World Wide Web Consortium (W3C) ได้กำหนดอินเทอร์เฟซความคิดเห็นไว้ 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คำนิยามที่กล่าวว่า

รายละเอียดเพิ่มเติมมีอยู่ในเว็บไซต์developer.android.com

ดังนั้นคุณสามารถเพิ่มความคิดเห็นของคุณระหว่างแท็กเริ่มต้นและแท็กสิ้นสุด ใน Eclipse IDE เพียงพิมพ์<!--อัตโนมัติจะแสดงความคิดเห็นสำหรับคุณ จากนั้นคุณสามารถเพิ่มข้อความแสดงความคิดเห็นของคุณในระหว่าง

ตัวอย่างเช่น:

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

วัตถุประสงค์ของการกล่าวถึงโดยเฉพาะin betweenคือเพราะคุณไม่สามารถใช้ภายในแท็ก

ตัวอย่างเช่น:

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

ผิดและจะให้ข้อผิดพลาดดังต่อไปนี้

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

1
หมายเหตุ: ไม่มีความคิดเห็นภายในแท็ก นี่ควรเป็นคำตอบที่เลือก
Eslam Sameh Ahmed

1
ส่งการปรับปรุงให้กับทีม Android Studio หากฉันใช้การเชื่อมโยงข้อมูลและต้องการแสดงความคิดเห็นบรรทัดใน XML ที่ฉันเขียนตรรกะการเชื่อมโยงข้อมูลบางอย่างฉันต้องแสดงความคิดเห็นที่อื่นและไม่ช่วยในการมองเห็นหรือความคิดเห็นที่อ้างถึงส่วนใด นี่ไม่ใช่สิ่งที่ควรทำไม่ได้และควรเปิดใช้งานเพื่อให้เราใช้งาน (devs)
Chapz


10

มีสองวิธีที่คุณสามารถทำได้

  1. เริ่มความคิดเห็นของคุณด้วย"<!--"จากนั้นจบความคิดเห็นด้วย "-->"

    ตัวอย่าง <!-- my comment goes here -->

  2. ไฮไลต์ส่วนที่คุณต้องการแสดงความคิดเห็นและกดCTRL + SHIFT + /


9

ctrl + shift + / คุณสามารถแสดงความคิดเห็นรหัส

<!--    
     <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

ความเห็นภายในแท็กเป็นไปได้

เป็นไปได้ที่จะสร้างแอตทริบิวต์ที่กำหนดเองที่สามารถใช้เพื่อแสดงความคิดเห็น / เอกสารประกอบ

ในตัวอย่างด้านล่างมีการdocumentation:infoกำหนดแอตทริบิวต์พร้อมด้วยค่าความคิดเห็นตัวอย่าง:

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

โปรดทราบว่าในกรณีนี้documentation.mycompany.comเป็นเพียงข้อกำหนดสำหรับเนมสเปซ XML แบบกำหนดเองใหม่ (ของdocumentation) และดังนั้นจึงเป็นเพียงสตริง URI ที่ไม่ซ้ำกัน - มันสามารถเป็นอะไรก็ได้ตราบใดที่มันไม่ซ้ำกัน documentationไปทางขวาของxmlns:นอกจากนี้ยังสามารถเป็นอะไรก็ได้ - นี้ทำงานในลักษณะเดียวกันว่าandroid:namespace XML ถูกกำหนดและใช้

โดยใช้รูปแบบนี้จำนวนของคุณลักษณะใด ๆ ที่สามารถสร้างขึ้นเช่นdocumentation:info, documentation:translation_notesฯลฯ พร้อมกับค่าคำอธิบายรูปแบบการเป็นเช่นเดียวกับแอตทริบิวต์ XML ใด ๆ

สรุป:

  • เพิ่มxmls:my_new_namespaceแอตทริบิวต์ให้กับองค์ประกอบ XML root (ระดับบนสุด) ในไฟล์โครงร่าง XML ตั้งค่าเป็นสตริงที่ไม่ซ้ำกัน
  • ภายใต้องค์ประกอบ XML ลูกใด ๆ ภายในไฟล์ใช้ namespace ใหม่และคำใด ๆ ต่อไปนี้เพื่อกำหนดแท็กความคิดเห็นที่จะถูกละเว้นเมื่อรวบรวมเช่น <TextView my_new_namespace:my_new_doc_property="description" />

1
โปรดทราบว่าแอตทริบิวต์เหล่านี้จะไม่ถูกยกเลิกในระหว่างกระบวนการสร้าง แต่จะถูกเก็บไว้ภายใน APK ที่เป็นผลลัพธ์แทน พิจารณาใช้tools:เนมสเปซพิเศษแทนซึ่งจะถูกละทิ้ง (อาจไม่มีอยู่เมื่อคำตอบนี้ถูกโพสต์ แต่หน้านี้ยังคงได้รับผู้ชมใหม่)
j__m

@j__m นี่เป็นจุดที่ดี ฉันยังไม่ได้ตรวจสอบว่า ProGuard สามารถลบสิ่งนี้ได้โดยอัตโนมัติหรือด้วยการกำหนดค่าเล็กน้อย ...
CJBS

4

หากคุณต้องการแสดงความคิดเห็นAndroid Studioเพียงกด:

Ctrl+ /บน Windows / Linux

Cmd+ /บน Mac

งานนี้ในไฟล์ XML เช่นเช่นเดียวกับในไฟล์เช่นรหัสstrings.xmlMainActivity.java


3

คลิก

CTRL + SHIFT + /

และเขียนสิ่งที่คุณและสิ่งต่าง ๆ จะอยู่ในความคิดเห็น


0

คุณสามารถเพิ่มความคิดเห็นโดยกด Ctrl + shift + / และ shift + / สำหรับหนึ่งบรรทัด


0

อย่างไม่น่าเชื่อในปี 2019 กับ Android studio 3.3 (ฉันไม่ทราบรุ่นที่แน่นอนอย่างน้อย 3.3) เป็นไปได้ที่จะใช้ความคิดเห็นเครื่องหมายทับสองครั้งเพื่อ xml

แต่ถ้าคุณใช้ double slash comment ใน xml, IDE จะแสดงคำเตือน

<?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>

Unexpected text found in layout file: ...มันจะแสดงคำเตือน
CoolMind

-2

จากบันทึกของ Federico Culloca:

นอกจากนี้คุณไม่สามารถใช้ภายในแท็ก

หมายความว่า คุณต้องใส่ความคิดเห็นที่ด้านบนหรือด้านล่างของไฟล์ - สถานที่ทั้งหมดที่คุณต้องการเพิ่มความคิดเห็นอย่างน้อยภายในแท็กเลย์เอาท์ระดับบนสุด


9
มันไม่ได้หมายความว่าอย่างนี้ คุณสามารถใส่ความคิดเห็นที่ไหนสักแห่งที่ตรงกลางของไฟล์ มันต้องอยู่ระหว่างแท็กอื่น ๆ
Alex Che

โดยเฉพาะอย่างยิ่งพวกเขาจะต้องอยู่ในลำดับนี้: แท็กปิดขององค์ประกอบ n, ความคิดเห็น, แท็กเปิดขององค์ประกอบ n + 1
บ้าน geoengineering
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.