Dans ma candidature, j'essaie d'implémenter Android:Theme.Material
comme thème parent dans les styles values-21
dossier:
<!-- res/values-21/styles.xml -->
<resources>
<!-- your theme inherits from the material theme -->
<style name="AppTheme" parent="Android:Theme.Material">
<!-- theme customizations -->
<item name="Android:colorPrimary">@color/primary</item>
<item name="Android:textColorPrimary">@color/text_primary</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="Android:colorPrimaryDark">@color/primary_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="Android:colorAccent">@color/accent</item>
<item name="Android:navigationBarColor">@color/primary_dark</item>
</style>
</resources>
Après avoir exécuté l'application, je suis en dessous de error
Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
Dans le dossier des valeurs. J'ai ci-dessous le style
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
</style>
Mais si j'ajoute le même Theme.AppCompat.Light
dans values-21 folder
son fonctionne bien. mais actionbar color
ne change pas.
Pourquoi ne puis-je pas utiliser le thème de la conception matérielle dans values-21 folder
? Comment résoudre ce problème?
(note: ma candidature minsdk verison
est 13
et maxsdk version
est 22
)
Mon activité étend AppCompactActivity
Si vous utilisez un AppCompatActivity
, utilisez simplement un style dans votre res/values/styles.xml
, et vérifiez l'espace de noms que vous utilisez pour colorPrimary, colorPrimaryDark ....
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
Le thème de votre application est défini dans le fichier manifeste:
<application
Android:theme="@style/AppTheme">
Vous trouverez ce style défini dans /res/values/styles.xml
.
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
L'utilisation de AppCompat
permet à vos thèmes d'être utilisés même pour les appareils antérieurs à Android 5.0. Les principaux thèmes de conception de matériaux sont présentés ci-dessous.