Voici un exemple de l' app
espace de noms que j'ai vu à partir d'un res/menu/main.xml
fichier
<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>
À quoi sert l' app
espace de noms? S'agit-il d'un espace de noms XML Android "standard"? Les mêmes options de valeur sont-elles disponibles pour le même attribut placé dans deux espaces de noms différents (par exemple app:showAsAction
et android:showAsAction
).
À partir de la documentation :
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
autrement dit, la ligne de l'exemple ci-dessus signifierait-elle autre chose si l'attribut était à la place:
android:showAsAction="never"
On dirait presque qu'il pourrait s'agir d'une sorte de mécanisme de "sous-classification", mais je n'arrive pas à trouver de véritable documentation sur l' app
espace de noms à partir de sources Google / Android.
showAsAction
sous un espace de noms personnalisé signifie-t-elle que cela fonctionne comme prévu sur les nouvelles plates-formes et est ignoré sur les plus anciennes?android:
versions.showAsName
attribut est pas pris en charge dans une ancienne bibliothèque, comment le fait d' utiliser un espace de noms personnalisés permettre la plate - forme de connaître la gamme d'options de valeur possible (ifRoom
,never
, etc.), et savoir comment interpréter ces options? Je suppose que «attributs qui n'existent pas» signifie des attributs pour lesquels il n'existe aucune implémentation dans la bibliothèque. Changerandroid:
pourapp:
ne semble guère être une solution de contournement complète. Est-ce que je manque quelque chose?app:showAsName
) et toutes ses valeurs possibles sont inclus dans votre application lorsque vous incluez laappcompat-v7
bibliothèque (qui la définit dans sonattrs.xml
fichier). 2) La bibliothèque AppCompat (en particulier, ActionMenuView qui s'utilise automatiquement lorsque vous utilisezActionBarActivity
) analyse et utiliseapp:showAsAction
pour afficher correctement les éléments de la même manière sur tous les niveaux d'API. Cela nécessite certainement à la fois XML et du code pour fonctionner ensemble.Vous pouvez obtenir des explications à partir de ce lien
Espace de noms XML
la source