Perché questa linea è necessaria nel file di layout xml?Perché questa riga xmlns: android = "http://schemas.android.com/apk/res/android" deve essere la prima nel file xml di layout?
xmlns:android="http://schemas.android.com/apk/res/android"
Perché questa linea è necessaria nel file di layout xml?Perché questa riga xmlns: android = "http://schemas.android.com/apk/res/android" deve essere la prima nel file xml di layout?
xmlns:android="http://schemas.android.com/apk/res/android"
In XML, xmlns dichiara uno spazio dei nomi. In realtà, quando si esegue:
<LinearLayout android:id>
</LinearLayout>
Invece di chiamare android:id
, il xml userà http://schemas.android.com/apk/res/android:id per essere unico. Generalmente questa pagina non esiste (è un URI, non un URL), ma a volte è un URL che spiega lo spazio dei nomi utilizzato.
Lo spazio dei nomi ha praticamente gli stessi usi del nome del pacchetto in un'applicazione Java.
Here è una spiegazione.
Uniform Resource Identifier (URI)
Un Uniform Resource Identifier (URI) è una stringa di caratteri che identifica una risorsa Internet.
L'URI più comune è l'URL (Uniform Resource Locator) che identifica un indirizzo di dominio Internet. Un altro tipo non comune di URI è l'URN (Universal Resource Name).
Nei nostri esempi utilizzeremo solo gli URL.
xmlns riferisce alla XML namespace
Quando si utilizzano i prefissi in XML, deve essere definito un cosiddetto namespace per il prefisso. Lo spazio dei nomi è definito dall'attributo xmlns nel tag di inizio di un elemento. La dichiarazione dello spazio dei nomi ha la seguente sintassi. xmlns: prefix = "URI".
Nota: l'URI dello spazio dei nomi non viene utilizzato dal parser per cercare informazioni.
Lo scopo è assegnare allo spazio dei nomi un nome univoco. Tuttavia, spesso le aziende utilizzano lo spazio dei nomi come puntatore a una pagina Web contenente informazioni sullo spazio dei nomi.
xmlns: android Definisce lo spazio dei nomi di Android. Questo attributo dovrebbe sempre essere impostato su "http://schemas.android.com/apk/res/android".
riferiscono http://developer.android.com/guide/topics/manifest/manifest-element.html
xmlns: Android Questo è iniziare tag per definire namespace Android in Android. Questa è la convenzione standerd definita da Android Google Developer. quando si utilizza e layout predefinito o custome, quindi è necessario utilizzare questo spazio dei nomi.
Definisce lo spazio dei nomi di Android. Questo attributo deve sempre essere impostato su "http://schemas.android.com/apk/res/android".
deve leggere: http://developer.android.com/guide/topics/manifest/manifest-element.html
Per comprendere il motivo per cui xmlns:android=“http://schemas.android.com/apk/res/android”
deve essere il primo nel file XML di layout Faremo conoscere i componenti con un esempio
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>
Uniform Resource Indicator(URI):
Es: http://schemas.android.com/apk/res/android:id
è l'URI qui
xmlns:android
descrive lo spazio dei nomi android .textview
con diversi funzionalità rispetto ad Android textview
, namespace Android aiuta a distinguere tra il nostro widget personalizzato textview
e Android textview
widget diquesta risposta vale davvero la pena di leggerla rispetto a quelle precedenti che non spiegano chiaramente" PERCHE '? " – eRaisedToX
Dicevi" Tale l'identificazione consente l'interazione con r rappresentazioni della risorsa su una rete, in genere il World Wide Web, utilizzando protocolli specifici. Es: http: //schemas.android.com/apk/res/android: id è l'URI qui "- Ma se non ho una connessione internet, come questo spazio dei nomi Android interagirà con le risorse su una rete? – kavie
Questa è solo la dichiarazione di spazio dei nomi XML . Utilizziamo questo spazio nome per specificare che gli attributi elencati di seguito appartengono a Android. Quindi iniziano con "android:"
In realtà è possibile creare i propri attributi personalizzati. Quindi, per evitare conflitti di nome in cui 2 attributi sono denominati la stessa cosa, ma si comportano diversamente, aggiungiamo il prefisso "android:" per indicare che si tratta di attributi Android.
Pertanto, questa dichiarazione Nome spazio deve essere inclusa nel tag di apertura della visualizzazione radice del file XML.
In XML, i nomi degli elementi sono definiti dallo sviluppatore. Ciò si traduce spesso in un conflitto quando si tenta di combinare documenti XML da diverse applicazioni XML. Un utente o un'applicazione XML non sapranno come gestire queste differenze. I conflitti dei nomi in XML possono essere facilmente evitati usando un prefisso del nome. Quando si utilizzano i prefissi in XML, è necessario definire uno spazio dei nomi per il prefisso. Lo spazio dei nomi può essere definito da un attributo xmlns nel tag di inizio di un elemento. La dichiarazione dello spazio dei nomi ha la seguente sintassi.xmlns: prefix = "URI".
a mettere in termini profani:
senza xmlns: Android =”http://schemas.android.com/apk/res/android” related tags android wont essere riconosciuti nel documento XML del nostro layout.
È una dichiarazione di spazio dei nomi XML per specificare che gli attributi all'interno del gruppo di viste in cui è decelerato sono correlati ad Android.
per favore elaboralo di più –
xmlns:android="http://schemas.android.com/apk/res/android"
Questa è la forma di xmlns: android = "@ +/id". Ora per refernce che usiamo per esempio
android:layout_width="wrap_content"
android:text="Hello World!"
Un altro xmlns è
xmlns:app="http://schemas.android.com/apk/res-auto"
che è in forma di xmlns: app = "@ +/id" e il suo uso è riportata qui sotto
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
Penso che sia chiaro con lo spazio dei nomi, dato che possiamo creare i nostri attributi e se l'attributo specificato dall'utente è uguale a quello di Android evita il conflitto dello spazio dei nomi.
Allora perché abbiamo 'android: layout_width' invece di solo 'layout_width'? – Shashwat
Allora come mai usiamo "LinearLayout" invece di "android: LinearLayout"? –
Probabilmente perché LinearLayout fa parte dello spazio dei nomi root e android: gli attributi xxx fanno parte di uno spazio secondario ("http://schemas.android.com/apk/res/android/android/id") – NitroG42