Я хочу использовать Theme.Material для всего устройства с API21 и выше и поддерживать совместимость с устройствами pre API21. Я следую инструкциям, описанным here, и создал 2 Style.xml. Это один для API21 и выше Используйте Theme.Material для API21 и выше и поддерживайте совместимость в Activity с помощью панели инструментов
<style name="AppTheme" parent="android:Theme.Material">
<item name="android:windowTranslucentStatus">true</item>
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<!-- Customize your theme here. -->
</style>
И это один для предварительно устройств API21
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<item name="colorAccent">@color/USMAAccent</item>
<!-- Customize your theme here. -->
</style>
Мой вопрос, какой класс мой MainActivity должен распространяться. Для работы с предустановленными устройствами API21 мой MainActivity расширяет AppCompatActivity, но с устройством с API21 и выше, я понимаю, что я должен расширяет активность (см What causes android exception "You need to use a Theme.AppCompat theme (or descendant) with this activity.") ...
Кроме того, если я продлить активность Как я могу установить панель инструментов? Я использую setSupportActionBar в AppCompatActivity.
Я понимаю, что тема android: Theme.Material (http://developer.android.com/) training/material/theme.html) в настоящее время широко не используется. Для целей совместимости лучше использовать AppCompat, а AppCompat предоставляет все возможности Theme.Material. – arover
Да. AppCompat обертывает тему материала для api <21 и использует материальную тему для api21 +. –