2016-07-21 12 views
8

XML arbeitet gut mit:Was ist XML-Eigenschaft xmlns: app?

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

aber

xmlns:app="http://schemas.android.com/tools" 

max Zeichen mit nicht sehen können, die von Android Studio Auto abgeschlossen ist.

Hier ist meine XML:

<com.rengwuxian.materialedittext.MaterialEditText 
    android:id="@+id/remark_text" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="15dp" 
    android:layout_marginRight="15dp" 
    app:met_maxCharacters="20" 
    app:met_baseColor="@color/black" 
    app:met_primaryColor="@color/white" /> 

Antwort

7

Xmlns steht für 'XML-Namespace'

  • der Teil nach ':' ist das Präfix für den Namespace
  • Der Teil nach '=' ist der Namespace-URI (der korrekte Name für seinen Teil ist eigentlich "Namespace-Name").

(Für weitere Details siehe https://en.wikipedia.org/wiki/XML_namespace)

Der Namespace 'schemas.android.com/tools' ist Optionen für die Angabe der App von Android Studio zu bauen, und sind nicht in der letzten App-Paket enthalten

Der Namespace 'schemas.android.com/apk/res-auto' wird für alle benutzerdefinierten Attribute verwendet, die in Bibliotheken oder im Code definiert sind. Einzelheiten finden Sie unter this answer.

Beachten Sie, dass ein Präfix für einen Namespace verwendet werden kann. Es ist nicht zwingend erforderlich, "app" für schemas.android.com/apk/res-auto zu verwenden. Bei der Definition der benutzerdefinierten Attribute im Dokument muss jedoch das gleiche Präfix verwendet werden. Andernfalls wird ein Fehler angezeigt.

Also, weil met_maxCharacters ein benutzerdefiniertes Attribut ist, wird angezeigt, wenn der ‚schemas.android.com/apk/res-auto‘ Namespace verwendet wird, und nicht mit
‚schemas.android.com/tools‘

+0

Sehr nützliche Antwort: Warum verwendet Android Studio/tools statt apk/res-auto? –

+2

Die beiden (/ tools und/apk/res-auto) sind für verschiedene Zwecke:/tools ist für Optionen zum Erstellen der App, und sind nicht Teil der App selbst, und sind in der apk entfernt./apk/res-auto ist für benutzerdefinierte Attribute, die in der App verwendet werden –

+0

Sehr sehr nützliche Antwort in den einfachsten Worten erklärt/Sprache –