web-dev-qa-db-fra.com

espace de noms d'application introuvable dans styles.xml dans le dossier res

J'écris ma propre barre d'outils avec un widget Android.support.v7.widget.Toolbar et je veux en mettre autant que possible dans un styles.xml dans mon dossier res.

Partie d'un fichier dans /res/layout/$example.xml

<Android.support.v7.widget.Toolbar 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"
    Android:id="@+id/toolbar_show_addresses_simple"
    app:style="@style/toolbar_dark" >

mon "toolbar_dark" est défini comme suit dans un fichier /res/values/styles.xml

<style name="toolbar_dark">
    <item name="Android:layout_width">match_parent</item>
    <item name="Android:layout_height">wrap_content</item>
    <item name="Android:background">@color/myPrimary</item>
    <item name="app:theme">@style/ThemeOverlay.AppCompat.Dark</item>
    <item name="app:popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="app:contentInsetStart">0dp</item>
</style>

Lors de la compilation

  Output:
     Error: No resource found that matches the given name: attr 'app:contentInsetStart'.
     Error: No resource found that matches the given name: attr 'app:popupTheme'.
     Error: No resource found that matches the given name: attr 'app:theme'.

Si j'utilise l'application: * les valeurs directement dans $ example.xml, tout fonctionne bien. Par conséquent, comment puis-je utiliser l'espace de noms de mon application dans les fichiers du dossier res?

34
Felix Fiskare

Vous ne pouvez pas utiliser un espace de noms d'application dans votre fichier de style et vous devez vous référer à l'attribut style sans espace de noms d'application dans votre mise en page.

Vous pouvez faire quelque chose comme ça:

<Android.support.v7.widget.Toolbar    
       xmlns:Android="http://schemas.Android.com/apk/res/Android"
        xmlns:tools="http://schemas.Android.com/tools"
        Android:id="@+id/toolbar_show_addresses_simple"
        style="@style/toolbar_dark" >

Style:

<style name="toolbar_dark" parent="Widget.AppCompat.Toolbar">
    <item name="Android:background">@color/green</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark</item>
</style>
65