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:
- Cómo preservar las saltos de línea en los recursos xml <string> en Android?
- ¿Cómo agregar el borde coloreado en cardview?
- Buscar ver cerrar icono aparecer deshabilitado en lugar de blanco
- Agregar imagen al elemento de menú
- Adición de una imagen como texto de fondo del texto
<?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?
- ¿Cómo puedo eliminar caracteres no reconocidos que vuelven de un servicio web?
- Ancho del elemento RecyclerView layout_width = "match_parent" no coincide con el padre
- ¿Cómo activar el botón "Compartir" en la aplicación Android?
- ¿Volver a calcular ScrollView en diferentes vistas de ViewFlipper?
- Disposición relativa de Android con pie de página pegajoso
- Cómo hacer TextView del mismo tamaño sin importar los textos dentro
- Vista emergente de Android No funciona
- Selector desplegable con la misma imagen pero diferente opacidad
Se puede ignorar, siempre lo hice y no encontré ningún problema. Para que desaparezca, debe configurar lo siguiente:
- Agregue
xmlns:tools="http://schemas.android.com/tools"
a su vista de raíz - 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 🙂
- ¿Es posible que la barra de estado se desplace junto con la barra de herramientas con el diseño del coordinador en Android?
- El control de conmutadores no funciona en Dialog en Android versión 5.0