Ich versuche, benutzerdefinierte Attribute in einigen Android-Layouts zu verwenden, aber ich erhalte einen Fehler (aus Eclipse), wenn ich versuche, ein anderes Namespace-Präfix als android:
in einem untergeordneten Element zu verwenden. Beachten Sie, dass es funktioniert, wenn ich das Namespacepräfix custom:
im Stamm- / Elternelement in der Datei verwende, nicht nur das untergeordnete Element.
Hier ist zum Beispiel ein einfaches Layout mit dem angegebenen benutzerdefinierten Namespace:
%Vor% Der Fehler, den Eclipse gibt (nur beim zweiten Versuch, das Präfix custom:
zu verwenden) ist:
Unerwartetes Namespacepräfix "benutzerdefiniert" gefunden für Tag ImageView.
Wenn ich meinem root-Element ein ImageView
anstelle eines LinearLayout
hinzufüge, wird das Präfix akzeptiert. Es scheint also nur ein Problem zu sein, das Namespacepräfix in einem Kindelement zu verwenden.
Wenn ich außerdem versuche, ein weiteres xmlns:custom="http://schemas.android.com/apk/res-auto"
-Attribut zum ImageView hinzuzufügen, beschwert es sich ebenfalls.
Wenn es hilft, hier ist die attrs.xml
Datei, die ich mit dem obigen verwende:
Ich habe online einige Sachen gesehen, die mich glauben machen lassen, was ich tun möchte. Zum Beispiel verwendet Qberticus in der akzeptierten Antwort hier das Präfix "whatever" in einer Kindklasse. Ähnlich in der Post hier .
Ich verstehe es nicht. Wird ein nicht-androides Namespace-Präfix für untergeordnete Elemente nicht erlaubt oder mache ich etwas falsch?
Es kann ignoriert werden, ich habe es immer getan und ich hatte keine Probleme. Um es zu entfernen, müssen Sie folgendes einstellen:
xmlns:tools="http://schemas.android.com/tools"
zu Ihrer Root-Ansicht hinzu tools:ignore="MissingPrefix"
zu Ihrer Textansicht hinzu Als Randnotiz verwende ich jedoch normalerweise benutzerdefinierte Attribute mit benutzerdefinierten Ansichten: -)
Tags und Links eclipse android android-layout namespaces xml