Utilizar un prefijo de espacio de nombres no androide en elementos secundarios en un diseño

Estoy tratando de usar atributos personalizados en algunos diseños de Android, pero estoy recibiendo un error (desde Eclipse) cuando intento utilizar un prefijo de espacio de nombres distinto de android: en un elemento secundario. Tenga en cuenta que funciona bien cuando uso el prefijo custom: namespace en el elemento raíz / padre en el archivo, no sólo el elemento secundario.

Por ejemplo, aquí hay un diseño simple con el espacio de nombres personalizado especificado:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" custom:my_tag1="whatever"> <!-- compiles fine --> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitCenter" custom:my_tag2="true"/> <!-- generates an error --> </LinearLayout> 

El error que Eclipse da (sólo en el segundo intento de usar el prefijo custom: 🙂 es:

Prefijo de espacio de nombres inesperado "personalizado" encontrado para la etiqueta ImageView.

Si hago que mi elemento raíz sea un ImageView lugar de LinearLayout , se acepta el prefijo. Por lo tanto, parece ser sólo un problema al utilizar el prefijo de espacio de nombres en un elemento secundario.

Además, si intento agregar otro atributo xmlns:custom="http://schemas.android.com/apk/res-auto" al ImageView, se queja también.

Si ayuda, aquí está el archivo attrs.xml que estoy usando con lo anterior:

 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="my_tag1" format="string"/> <attr name="my_tag2" format="boolean"/> </resources> 

He visto algunas cosas en línea que me lleva a creer lo que quiero hacer debe ser posible. Por ejemplo, en la respuesta aceptada aquí , Qberticus utiliza el prefijo "whatever" en una clase de niño. Del mismo modo en el post aquí .

No lo entiendo. ¿Está usando un prefijo de espacio de nombres no-android simplemente no permitido para los elementos secundarios, o estoy haciendo algo mal?

Se puede ignorar, siempre lo hice y no encontré ningún problema. Para que desaparezca, debe configurar lo siguiente:

  1. Agregue xmlns:tools="http://schemas.android.com/tools" a su vista de raíz
  2. Agregue las tools:ignore="MissingPrefix" a su vista de texto

En una nota lateral, sin embargo, por lo general usan atributos personalizados con vistas personalizadas 🙂

  • Establecer el modo spinner en XML
  • ¿Podemos usar VectorDrawable o VectorXML como iconos para notificaciones push en android?
  • Error al intentar probar AnimatedVectorDrawable, "No se puede cambiar de x a z"
  • ¿Cómo cambiar el color del pulgar en el buscador?
  • Android NumberPicker: Establecer min, max, por defecto de XML
  • Android tamaño de la barra de clasificación (no puede utilizar Widget.RatingBar.Small)
  • El atributo del paquete AndroidManifest.xml <manifiesto> no tiene ningún espacio de nombres
  • Cómo cargar el archivo xml del animador en Android programatically?
  • Android usando recursos de matriz xml
  • Android: ¿Cómo url de la tienda en el archivo de recursos string.xml?
  • Configuración de alfa en un BitmapDrawable en XML
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.