Why this line xmlns: android="http://schemas.android.com/apk/res/android" must be the first in the layout xml file?

porque é que esta linha é necessária no ficheiro de layout xml?

xmlns:android="http://schemas.android.com/apk/res/android" 
Author: ROMANIA_engineer, 2011-08-19

11 answers

Em XML, o xmlns declara um espaço de nomes. Na verdade, quando você faz:

<LinearLayout android:id>
</LinearLayout>

Em vez de chamar android:id, o xml irá usar http://schemas.android.com/apk/res/android:id ser único. Geralmente esta página não existe (é um URI, não uma URL), mas às vezes é uma URL que explica o espaço de nomes usado.

O espaço de nomes tem praticamente os mesmos usos que o nome do pacote em uma aplicação Java.

Aqui está uma explicação.

Uniforme Identificador do recurso (URI)

Um identificador uniforme de recursos (URI) é uma cadeia de caracteres que identifica um recurso de Internet.

O URI mais comum é O Localizador de recursos uniforme (URL) que identifica um endereço de domínio na Internet. Outro tipo, não tão comum de URI é o nome do recurso Universal (URN).

Nos nossos exemplos só usaremos URLs.

 102
Author: NitroG42, 2014-06-21 00:46:50

O Xmlns refere-se ao espaço de nomes XML

Ao usar prefixos em XML, deve ser definido um espaço de nomes para o prefixo. O espaço de nomes é definido pelo atributo xmlns na tag inicial de um elemento. A declaração do espaço de nomes tem a seguinte sintaxe. xmlns: prefixo= "URI".

Nota : o URI do espaço de nomes não é usado pelo analisador para procurar informações.

O objectivo é dar ao espaço de nomes um nome único. No entanto, muitas vezes as empresas utilizam o espaço de nomes como um ponteiro para uma página web contendo informações de espaço de nomes.

 21
Author: Martyn, 2011-08-19 09:15:28

Para entender por que xmlns:android=“http://schemas.android.com/apk/res/android” deve ser o primeiro no ficheiro layout xml, compreenderemos os componentes usando um exemplo

Sample::

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/container" >    
</FrameLayout>

Indicador uniforme dos recursos(URI)):

  • em computação, um identificador de recurso uniforme (URI) é uma cadeia de caracteres usados para identificar um nome de um recurso.
  • essa identificação permite a interacção com as representações do recurso sobre uma rede, normalmente a World Wide Web, usando protocolo.

Ex: http://schemas.android.com/apk/res/android:id é o URI aqui


Espaço de nomes em XML:

  • os espaços de nomes XML são usados para fornecer elementos com nomes únicos e atributos num documento XML. Descreve o andróide. espaco.
  • é usado desta forma porque esta é uma escolha de design pelo google para lidar com os erros na hora de compilação.
  • também suponhamos que escrevemos o nosso próprio textview widget com diferentes recurso comparado com o android textview, o namespace do android ajuda a distinguir entre o nosso elemento personalizado textview e o android textview widget
 20
Author: Devrath, 2014-09-10 05:55:10

Xmlns: android Define o espaço de nomes Android. Este atributo deve ser sempre definido como "http://schemas.android.com/apk/res/android".

Ver http://developer.android.com/guide/topics/manifest/manifest-element.html

 5
Author: dinesh sharma, 2012-03-22 06:42:02

Isto é apenas a declaração de espaço do nome XML. Usamos este espaço de nome, a fim de especificar que os atributos listados abaixo, pertence ao Android. Assim eles começam com " Andróide:"

Você pode realmente criar os seus próprios atributos personalizados. Assim, para prevenir os conflitos de nomes onde dois atributos são nomeados a mesma coisa, mas se comportar de forma diferente, adicionamos o prefixo "android: " para significar que estes são atributos Android.

Assim, esta declaração de espaço de nome deve seja incluído na marca de abertura da janela de raiz do seu ficheiro XML.

 4
Author: Harsh Dani, 2016-08-10 02:33:57

Xmlns: android Esta é a marca inicial para definir o espaço de nomes do android no Android. Esta é a Convenção standerd definida pelo desenvolvedor Google android. quando você está usando e layout default ou custome, então deve usar este espaço de nomes.

Define o espaço de nomes Android. Este atributo deve ser sempre definido como "http://schemas.android.com/apk/res/android".

Deve ler-se : http://developer.android.com/guide/topics/manifest/manifest-element.html

 2
Author: vikseln, 2014-09-07 08:38:32

Em XML, os nomes dos elementos são definidos pelo programador. Isso muitas vezes resulta em um conflito ao tentar misturar documentos XML de diferentes aplicações XML. Um usuário ou uma aplicação XML não saberá como lidar com essas diferenças. Conflitos de nomes em XML podem ser facilmente evitados usando um prefixo de nome. Ao usar prefixos em XML, um espaço de nomes para o prefixo deve ser definido.O espaço de nomes pode ser definido por um atributo xmlns na tag inicial de um elemento.A declaração do espaço de nomes tem o sintaxe. xmlns: prefixo= "URI".

 2
Author: student, 2016-08-10 15:19:18

Para colocar o termo leigo :

Sem xmlns: android= " http://schemas.android.com/apk/res/android " as marcas relacionadas com o android não serão reconhecidas no documento xml do nosso layout.

 1
Author: Swapnil, 2016-10-13 10:31:24
xmlns:android="http://schemas.android.com/apk/res/android"

Esta é a forma de xmlns: android = "@ + / id". Agora para se referir a ele Nós usamos por exemplo

android:layout_width="wrap_content"
android:text="Hello World!"

Outro xmlns é

 xmlns:app="http://schemas.android.com/apk/res-auto"

Que é sob a forma de xmlns: app = "@ + / id " e a sua utilização é dada abaixo

 app:layout_constraintBottom_toBottomOf="parent"
 app:layout_constraintLeft_toLeftOf="parent"
 1
Author: saleem kalro, 2017-03-17 02:19:42

Eu acho que deixa claro com o espaço de nomes, como podemos criar nossos próprios atributos e se o atributo especificado pelo Usuário é o mesmo que o Android que evita o conflito do espaço de nomes.

 1
Author: Jomcy Johny, 2017-05-06 23:19:14

É uma declaração de espaço de nome XML a fim de especificar que os atributos que estão dentro do grupo de visualização em que está desacelerado estão relacionados com o android.

 -1
Author: jeff, 2017-01-20 06:28:36