Komentar di Layout Android xml


145

Saya ingin memasukkan beberapa komentar ke dalam tata letak file XML, bagaimana saya melakukannya?

Jawaban:


252

Seperti yang lain katakan, komentar dalam XML seperti ini

<!-- this is a comment -->

Perhatikan bahwa mereka dapat menjangkau beberapa baris

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

Tapi mereka tidak bisa disarangkan

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

Anda juga tidak dapat menggunakannya di dalam tag

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

3
Anda juga tidak dapat memiliki tanda hubung ganda dalam komentar atau parser XML akan mengeluh <! - ini - menyebabkan masalah tapi ini - tidak ->
Martin Belcher - AtWrk

Jika Anda menggunakan Eclipse, Anda dapat membuka file XML, letakkan kursor di tempat yang Anda inginkan komentar, pilih dari menu top Source -> Add Block Comment. Juga, "ctrl + shft + /" (yaitu, tahan kontrol dan tombol shift kemudian tekan tombol miring maju). Kode komentar akan dibuat dengan kursor Anda di tengah, sehingga Anda bisa mulai mengetik.
LeBeau

7
> Anda juga tidak dapat menggunakannya di dalam tag. Cukup disayangkan kok.
linuxjava

38

Konsorsium World Wide Web (W3C) sebenarnya mendefinisikan antarmuka komentar. Definisi itu mengatakan 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.

Rincian lebih lanjut tersedia di situs developer.android.com .

Jadi, Anda cukup menambahkan komentar di antara tag awal dan akhir. Dalam Eclipse IDE cukup mengetik <!--akan otomatis melengkapi komentar untuk Anda. Anda kemudian dapat menambahkan teks komentar di antaranya.

Sebagai contoh:

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

Tujuan penyebutan khusus in betweenadalah karena Anda tidak dapat menggunakannya di dalam tag.

Sebagai contoh:

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

salah dan akan memberikan kesalahan berikut

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

1
Catatan: Tidak ada komentar di dalam tag. Ini harus menjadi jawaban yang dipilih
Eslam Sameh Ahmed

1
Mengirimkan tambahan ke tim Android Studio. Jika saya menggunakan pengikatan data dan ingin mengomentari baris dalam XML di mana saya menulis beberapa logika pengikatan data, saya harus mengomentari tempat lain dan itu tidak membantu dengan visibilitas atau ke bagian mana komentar merujuk. Ini bukan sesuatu yang seharusnya tidak mungkin dilakukan, dan harus diaktifkan untuk kita (devs) gunakan.
Chapz

19

Komentar XML dimulai dengan <!--dan diakhiri dengan -->.

Sebagai contoh:

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

10

Ada dua cara untuk melakukannya

  1. Mulai komentar Anda dengan "<!--"kemudian akhiri komentar Anda dengan "-->"

    Contoh <!-- my comment goes here -->

  2. Sorot bagian yang ingin Anda komentari dan tekan CTRL + SHIFT + /


9

ctrl + shift + / Anda dapat mengomentari kodenya.

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

Komentar DALAM tag mungkin

Dimungkinkan untuk membuat atribut khusus yang dapat digunakan untuk tujuan komentar / dokumentasi.

Pada contoh di bawah ini, documentation:infoatribut didefinisikan, dengan nilai komentar contoh:

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

Perhatikan bahwa dalam kasus ini, documentation.mycompany.comhanya definisi untuk namespace XML kustom baru documentation, dan karenanya hanya string URI yang unik - itu bisa apa saja asalkan unik. Di documentationsebelah kanan xmlns:juga bisa apa saja - ini bekerja dengan cara yang sama seperti android:XML namespace didefinisikan dan digunakan.

Menggunakan format ini, sejumlah atribut dapat dibuat, seperti documentation:info, documentation:translation_notesdll., Bersama dengan nilai deskripsi, formatnya sama dengan atribut XML apa pun.

Singkatnya:

  • Tambahkan xmls:my_new_namespaceatribut ke elemen XML root (tingkat atas) di file tata letak XML. Tetapkan nilainya ke string unik
  • Di bawah elemen XML anak apa pun dalam file, gunakan namespace baru, dan kata apa pun berikut untuk menentukan tag komentar yang diabaikan ketika dikompilasi, misalnya <TextView my_new_namespace:my_new_doc_property="description" />

1
Perhatikan bahwa atribut ini tidak akan dibuang selama proses pembuatan tetapi akan disimpan di dalam APK yang dihasilkan. Pertimbangkan untuk menggunakan tools:namespace khusus sebagai gantinya, yang tidak dibuang. (Mungkin tidak ada ketika jawaban ini diposting, tetapi halaman ini terus mendapatkan pemirsa baru.)
j__m

@ j__m Ini poin bagus. Saya belum melihat apakah ProGuard dapat menghapus ini secara otomatis, atau dengan sedikit konfigurasi ...
CJBS

4

Jika Anda ingin berkomentar Android Studiocukup tekan:

Ctrl+ /di Windows / Linux

Cmd+ /di Mac.

Ini berfungsi dalam file XML seperti strings.xmljuga dalam file kode suka MainActivity.java.


3

klik

ctrl + shift + /

dan menulis apa pun yang Anda dan semua akan di komentar


0

Anda juga dapat menambahkan komentar dengan menekan Ctrl + shift + / dan shift + / untuk satu baris.


-1

Luar biasa, pada tahun 2019 dengan Android studio 3.3 (saya tidak tahu versi pastinya, setidaknya 3.3), dimungkinkan untuk menggunakan komentar slash ganda untuk xml.

Tetapi jika Anda menggunakan komentar slash ganda dalam xml, IDE menunjukkan peringatan.

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

Ini akan menampilkan peringatan Unexpected text found in layout file: ....
CoolMind

-2

Dari catatan Federico Culloca:

Anda juga tidak dapat menggunakannya di dalam tag

Cara; Anda harus meletakkan komentar di bagian atas atau bawah file - semua tempat yang Anda ingin tambahkan komentar setidaknya di dalam tag tata letak tingkat atas


9
Itu tidak berarti ini. Anda dapat dengan sempurna memberikan komentar di suatu tempat di tengah file. Itu hanya perlu antara tag lain.
Alex Che

Lebih khusus, mereka harus dalam urutan ini: tag penutup elemen n, komentar, tag pembuka elemen n +1.
Larangan geoengineering
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.