Por que essa linha é necessária no arquivo de layout xml?
xmlns:android="http://schemas.android.com/apk/res/android"
Por que essa linha é necessária no arquivo de layout xml?
xmlns:android="http://schemas.android.com/apk/res/android"
Respostas:
Em XML, xmlns declara um espaço para nome. De fato, quando você faz:
<LinearLayout android:id>
</LinearLayout>
Em vez de chamar android:id
, o xml usará http://schemas.android.com/apk/res/android:id para ser exclusivo. Geralmente, esta página não existe (é um URI, não um URL), mas às vezes é um URL que explica o espaço para nome usado.
O espaço para nome tem praticamente os mesmos usos que o nome do pacote em um aplicativo Java.
Aqui está uma explicação.
Identificador Uniforme de Recursos (URI)
Um URI (Uniform Resource Identifier) é uma sequência de caracteres que identifica um Recurso na Internet.
O URI mais comum é o URL (Uniform Resource Locator) que identifica um endereço de domínio da Internet. Outro tipo de URI não tão comum é o Universal Resource Name (URN).
Nos nossos exemplos, usaremos apenas URLs.
android:layout_width
vez de apenas layout_width
?
Para entender por que xmlns:android=“http://schemas.android.com/apk/res/android”
deve ser o primeiro no arquivo xml de layout Nós entenderemos 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 de Recursos (URI) :
Ex: http://schemas.android.com/apk/res/android:id
é o URI aqui
xmlns:android
descreve o espaço para nome do android.textview
widget com recursos diferentes em comparação com o Android textview
, o namespace Android ajuda a distinguir entre nosso textview
widget personalizado e o textview
widget Android
xmlns refere-se ao espaço para nome XML
Ao usar prefixos em XML, um chamado espaço para nome para o prefixo deve ser definido. O espaço para nome é definido pelo atributo xmlns na tag start de um elemento. A declaração do namespace possui a seguinte sintaxe. xmlns: prefixo = "URI".
Nota : O URI do namespace não é usado pelo analisador para procurar informações.
O objetivo é atribuir ao namespace um nome exclusivo. No entanto, muitas vezes as empresas usam o espaço para nome como um ponteiro para uma página da Web que contém informações sobre o espaço para nome.
Esta é apenas a declaração do XML Name Space. Usamos esse espaço de nome para especificar que os atributos listados abaixo pertencem ao Android. Assim, eles começam com " android: "
Você pode realmente criar seus próprios atributos personalizados. Portanto, para evitar conflitos de nome onde 2 atributos são nomeados da mesma coisa, mas se comportam de maneira diferente, adicionamos o prefixo " android: " para indicar que esses são atributos do Android.
Portanto, essa declaração de espaço de nome deve ser incluída na tag de abertura da visualização raiz do seu arquivo XML.
xmlns: android Define o espaço para nome do Android. Este atributo sempre deve ser definido como "http://schemas.android.com/apk/res/android".
consulte http://developer.android.com/guide/topics/manifest/manifest-element.html
Para colocar no termo leigo:
sem xmlns: android = ” http://schemas.android.com/apk/res/android ” as tags relacionadas ao Android não serão reconhecidas no documento xml do nosso layout.
No XML, os nomes dos elementos são definidos pelo desenvolvedor. Isso geralmente resulta em conflito ao tentar misturar documentos XML de diferentes aplicativos XML. Um usuário ou um aplicativo XML não saberá como lidar com essas diferenças. Os conflitos de nome no XML podem ser facilmente evitados usando um prefixo de nome. Ao usar prefixos em XML, um espaço para nome para o prefixo deve ser definido. O espaço para nome pode ser definido por um atributo xmlns na marca de início de um elemento. A declaração do espaço para nome possui a seguinte sintaxe. xmlns: prefixo = "URI".
xmlns:android="http://schemas.android.com/apk/res/android"
Esta é a forma do xmlns: android = "@ + / id". Agora, para referencia-lo, usamos, por exemplo
android:layout_width="wrap_content"
android:text="Hello World!"
Outro xmlns é
xmlns:app="http://schemas.android.com/apk/res-auto"
que está na forma de xmlns: app = "@ + / id" e seu uso é dado abaixo
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
xmlns: android Esta é a tag de início para definir o namespace do Android no Android. Esta é a convenção standerd definida pelo desenvolvedor do google android. Quando você estiver usando o layout padrão ou personalizado, deverá usar este espaço para nome.
Define o espaço para nome do Android. Este atributo sempre deve ser definido como " http://schemas.android.com/apk/res/android ".
A partir da <manifes>
documentação do elemento .
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns : é o espaço para nome xml e a URL: " http://schemas.android.com/apk/res/android " não passa de
XSD, que é [definição do esquema XML]: que é usado para definir regras para o arquivo XML.
Exemplo:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:hint="User Name"
/>
</LinearLayout>
Deixe-me explicar que tipo de regras? .
Esse tipo de regra é definido no XML XSD: " http://schemas.android.com/apk/res/android "
um pouco tarde, mas espero que isso ajude você.
É uma declaração de espaço de nome XML para especificar que os atributos que estão dentro do grupo de visualizações em que está desacelerado estão relacionados ao Android.