programacion - ¿Cuál es el espacio de nombres de Android XML de la "aplicación"?
manual de android en pdf (1)
El espacio de nombres de la app
no es específico de una biblioteca, pero se usa para todos los atributos definidos en su aplicación, ya sea por su código o por las bibliotecas que importa, creando efectivamente un único espacio de nombres global para atributos personalizados, es decir, atributos no definidos por el Android sistema.
En este caso, la biblioteca appcompat-v7
utiliza atributos personalizados que reflejan el android:
espacios de nombres para admitir versiones anteriores de android (por ejemplo: android:showAsAction
solo se agregó en API11, pero la app:showAsAction
(se proporciona como parte de su aplicación) funciona en todos los niveles de API que su aplicación tiene): obviamente, el uso de android:showAsAction
no funcionaría en niveles de API donde ese atributo no está definido.
Aquí hay un ejemplo del espacio de nombres de la app
que he visto en un archivo res/menu/main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
¿Para qué sirve el espacio de nombres de la app
? ¿Es un espacio de nombres de Android XML "estándar"? ¿Están disponibles las mismas opciones de valor para el mismo atributo en dos espacios de nombres diferentes (por ejemplo, app:showAsAction
y android:showAsAction
).
De los docs : android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
es decir, la línea en el ejemplo anterior significaría algo más si el atributo fuera en su lugar:
android:showAsAction="never"
Casi parece que podría ser algún tipo de mecanismo de "subclasificación", pero parece que no puedo encontrar ninguna documentación real en el espacio de nombres de la app
de las fuentes de Google / Android.