9

В моем приложении я пытаюсь реализовать android:Theme.Material в качестве родительской темы в стилях values-21 папку:Как использовать android: Theme.Material (Тема материала) в styles.xml android?

<!-- 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

+0

Вы можете использовать AppCompat для этого –

+0

@SandeepSingh я использую AppCompat, а также. какой appcampat мне нужно использовать? – John

+0

вы должны использовать ApcompatActivity вместо ActionBarActivity или Activity, если вы используете версию 22.1.1 build – Chandru

ответ

4

Если ваш используете 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> 
+0

Как мы можем изменить цвет текста панели задач в этом? – John

+0

@ color/text_primary Это используется, чтобы изменить цвет текста панели действий. – John

+0

Выше ответ работает нормально. но все же я не знаю, почему мы не можем использовать материальную тему. спасибо за ответ @GabrieleMariotti – John

5

enter image description here

Ваше приложение тема определяется в файле манифеста:

<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. Основные темы оформления материалов показаны ниже.

Dark Theme

enter image description here

Light Theme

enter image description here

Light Тема с Dark Bar Действие

enter image description here

Fu rther Чтение

Смежные вопросы