web-dev-qa-db-fra.com

Comment utiliser Android: Theme.Material (Material Material) dans styles.xml android?

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

14
John

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>
5
Gabriele Mariotti

enter image description here

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.

Thème sombre

enter image description here

Thème léger

enter image description here

Thème clair avec barre d'action sombre

enter image description here

Lectures complémentaires

7
Suragch