Comentários no Android Layout xml


145

Gostaria de inserir alguns comentários nos arquivos XML de layout, como faria isso?

Respostas:


252

Como já foi dito, os comentários em XML são assim

<!-- this is a comment -->

Observe que eles podem se estender por várias linhas

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

Mas eles não podem ser aninhados

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

Além disso, você não pode usá-los dentro de tags

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

3
Além disso, você não pode ter um duplo traço dentro de um comentário ou o analisador XML vai reclamar <! - essa - causa um problema, mas isso - não ->
Martin Belcher - AtWrk

Se você estiver usando o Eclipse, poderá abrir o arquivo XML, posicionar o cursor onde deseja o comentário e escolher no menu superior Origem -> Adicionar comentário de bloco. Além disso, "ctrl + shft + /" (ou seja, mantenha pressionado o controle e a tecla Shift e pressione a tecla barra). O código do comentário será criado com o cursor no meio, para que você possa começar a digitar.
precisa

7
> Além disso, você não pode usá-los dentro de tags. Muito infeliz realmente.
Linuxjava

38

O World Wide Web Consortium (W3C) realmente definiu uma interface de comentários. A definição diz 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.

Mais detalhes estão disponíveis no site developer.android.com .

Assim, você pode simplesmente adicionar seu comentário entre qualquer tag inicial e final. No Eclipse IDE, basta digitar <!--automaticamente o comentário para você. Você pode adicionar o texto do seu comentário no meio.

Por exemplo:

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

O objetivo de mencionar especificamente in betweené porque você não pode usá-lo dentro de uma tag.

Por exemplo:

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

está errado e dará o seguinte erro

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

1
Nota: Nenhum comentário dentro das tags. Esta deve ser a resposta escolhida
Eslam Sameh Ahmed

1
Enviou um elogio à equipe do Android Studio. Se eu usar a ligação de dados e quiser comentar uma linha em XML em que escrevi alguma lógica de ligação de dados, tenho que comentar em outro lugar e isso não ajuda na visibilidade ou em qual parte o comentário se refere. Isso não é algo que deve ser impossível de ser feito e deve ser ativado para nós (desenvolvedores).
Chapz

19

Os comentários XML começam com <!--e terminam com -->.

Por exemplo:

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

10

Existem duas maneiras de fazer isso

  1. Comece seu comentário com "<!--"e termine-o com "-->"

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

  2. Destaque a parte que deseja comentar e pressione CTRL + SHIFT + /


9

ctrl + shift + / Você pode comentar o código.

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

Possíveis tags INSIDE

É possível criar atributos personalizados que podem ser usados ​​para fins de comentários / documentação.

No exemplo abaixo, um documentation:infoatributo é definido, com um valor de comentário de exemplo:

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

Observe que, nesse caso, documentation.mycompany.comé apenas uma definição para o novo namespace XML personalizado (de documentation) e, portanto, é apenas uma sequência URI exclusiva - pode ser qualquer coisa, desde que seja única. O documentationlado direito do xmlns:também pode ser qualquer coisa - isso funciona da mesma maneira que o android:espaço para nome XML é definido e usado.

Usando esse formato, qualquer número de atributos pode ser criado, como documentation:info,documentation:translation_notes etc., juntamente com um valor de descrição, o formato sendo o mesmo que qualquer atributo XML.

Em suma:

  • Adicione um xmls:my_new_namespaceatributo ao elemento XML raiz (de nível superior) no arquivo de layout XML. Defina seu valor como uma sequência única
  • Sob qualquer elemento XML filho dentro do arquivo, use o novo espaço para nome e qualquer palavra a seguir para definir tags de comentário que são ignoradas quando compiladas, por exemplo <TextView my_new_namespace:my_new_doc_property="description" />

1
Observe que esses atributos não serão descartados durante o processo de compilação, mas serão armazenados dentro do APK resultante. Considere usar o tools:espaço para nome especial , que é descartado. (Provavelmente não existia quando esta resposta foi publicado, mas esta página continua a obter novos espectadores.)
j__m

@j__m Este é um bom argumento. Eu não olhei para se ProGuard pode remover este seja automaticamente ou com um pouco de configuração ...
CJBS

4

Se você quiser comentar Android Studiobasta pressionar:

Ctrl+ /no Windows / Linux

Cmd + / no Mac.

Isso funciona em arquivos XML, strings.xmlbem como em arquivos de código como MainActivity.java.


3

Clique no

ctrl + shift + /

e escreva qualquer coisa que você e tudo estiver nos comentários


0

você também pode adicionar comentários pressionando Ctrl + shift + / e shift + / para uma linha.


-1

Inacreditavelmente, em 2019 com o Android studio 3.3 (não sei a versão exata, pelo menos 3.3), é possível usar o comentário de barra dupla no xml.

Mas se você usar um comentário de barra dupla em xml, o IDE exibirá um aviso.

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

Isso mostrará um aviso Unexpected text found in layout file: ....
CoolMind

-2

Da nota de Federico Culloca:

Além disso, você não pode usá-los dentro de tags

Significa; você deve colocar o comentário na parte superior ou inferior do arquivo - todos os lugares que você realmente deseja adicionar comentários estão pelo menos dentro da tag de layout de nível superior


9
Isso não significa isso. Você pode perfeitamente colocar um comentário em algum lugar no meio do arquivo. Ele só precisa estar entre outras tags.
Alex Che #

Mais especificamente, eles devem estar nesta ordem: tag de fechamento do elemento n, comentário, tag de abertura do elemento n + 1.
ban-geoengineering
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.