Perché questa riga è necessaria nel file di layout XML?
xmlns:android="http://schemas.android.com/apk/res/android"
Perché questa riga è necessaria nel file di layout XML?
xmlns:android="http://schemas.android.com/apk/res/android"
Risposte:
In XML, xmlns dichiara uno spazio dei nomi. In effetti, quando lo fai:
<LinearLayout android:id>
</LinearLayout>
Invece di chiamare android:id
, l'xml utilizzerà 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.
Ecco una spiegazione
Uniform Resource Identifier (URI)
Un URI (Uniform Resource Identifier) è una stringa di caratteri che identifica una risorsa Internet.
L'URI più comune è l'Uniform Resource Locator (URL) che identifica un indirizzo di dominio Internet. Un altro tipo di URI non così comune è l'URN (Universal Resource Name).
Nei nostri esempi utilizzeremo solo URL.
android:layout_width
invece di solo layout_width
?
Per capire perché xmlns:android=“http://schemas.android.com/apk/res/android”
deve essere il primo nel file xml di layout Dovremo comprendere i componenti usando 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
widget con funzionalità diverse rispetto ad Android textview
, lo spazio dei nomi Android aiuta a distinguere tra il nostro textview
widget personalizzato e il textview
widget Android
xmlns si riferisce allo spazio dei nomi XML
Quando si utilizzano prefissi in XML, è necessario definire un cosiddetto spazio dei nomi per il prefisso. Lo spazio dei nomi è definito dall'attributo xmlns nel tag iniziale di un elemento. La dichiarazione dello spazio dei nomi ha la sintassi seguente. xmlns: prefix = "URI".
Nota : l'URI dello spazio dei nomi non viene utilizzato dal parser per cercare informazioni.
Lo scopo è di 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.
Questa è solo la dichiarazione dello spazio dei nomi XML. Usiamo questo spazio dei nomi per specificare che gli attributi elencati di seguito appartengono ad Android. Quindi iniziano con " android: "
Puoi effettivamente creare i tuoi attributi personalizzati. Quindi, per evitare conflitti di nome in cui 2 attributi sono denominati la stessa cosa, ma si comportano in modo diverso, aggiungiamo il prefisso " android: " per indicare che si tratta di attributi Android.
Pertanto, questa dichiarazione dello spazio dei nomi deve essere inclusa nel tag di apertura della vista principale del file XML.
xmlns: android Definisce lo spazio dei nomi Android. Questo attributo deve essere sempre impostato su "http://schemas.android.com/apk/res/android".
consultare http://developer.android.com/guide/topics/manifest/manifest-element.html
In parole povere:
senza xmlns: android = " http://schemas.android.com/apk/res/android " i tag relativi ad Android non saranno riconosciuti nel documento xml del nostro layout.
In XML, i nomi degli elementi sono definiti dallo sviluppatore. Ciò si traduce spesso in un conflitto quando si tenta di mescolare documenti XML da diverse applicazioni XML. Un utente o un'applicazione XML non sapranno come gestire queste differenze. I conflitti di nomi in XML possono essere facilmente evitati usando un prefisso. Quando si utilizzano 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 iniziale di un elemento. La dichiarazione dello spazio dei nomi ha la seguente sintassi. xmlns: prefix = "URI".
xmlns:android="http://schemas.android.com/apk/res/android"
Questa è la forma di xmlns: android = "@ + / id". Ora per fare riferimento, usiamo ad 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 è indicato di seguito
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
xmlns: android Questo è il tag iniziale per definire lo spazio dei nomi Android in Android. Questa è la convenzione standerd definita dallo sviluppatore google android. quando si utilizza e layout predefinito o personalizzato, è necessario utilizzare questo spazio dei nomi.
Definisce lo spazio dei nomi Android. Questo attributo deve essere sempre impostato su " http://schemas.android.com/apk/res/android ".
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns : è lo spazio dei nomi xml e l' URL: " http://schemas.android.com/apk/res/android " non è altro che
XSD che è [definizione dello schema XML]: utilizzato per definire le regole per il file XML.
Esempio :
<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>
Lasciami spiegare What Kind of Rules? .
Tale tipo di regole sono definite in XML XSD: " http://schemas.android.com/apk/res/android "
un po 'tardi ma spero che questo ti aiuti.
È una dichiarazione dello spazio dei nomi XML per specificare che gli attributi all'interno del gruppo di viste in cui è rallentato sono correlati ad Android.