私のアプリケーションでは、Android:Theme.Material
フォルダのスタイルにvalues-21
を親テーマとして実装しようとしています。
<!-- 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>
アプリを実行した後、私はerror
以下になっています
Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
値フォルダー内。私は以下のスタイルを持っています
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
</style>
ただし、Theme.AppCompat.Light
に同じvalues-21 folder
を追加すると、正常に機能します。しかし、actionbar color
は変更されていません。
なぜvalues-21 folder
でマテリアルデザインテーマを使用できないのですか?この問題を解決するには?
(注:私のアプリケーションminsdk verison
は13
であり、maxsdk version
は22
です)
私のアクティビティはAppCompactActivityを拡張します
AppCompatActivity
を使用している場合は、res/values/styles.xml
でスタイルのみを使用し、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>
アプリのテーマはマニフェストファイルで定義されます。
<application
Android:theme="@style/AppTheme">
このスタイルは/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>
AppCompat
を使用すると、Android 5.0。の主要なマテリアルデザインテーマを以下に示します。