Android Studio Материал Дизайн....styles.xml

Я хочу использовать AppTheme android:Theme.Material.Light.DarkActionBar для моего приложения. Это доступно в SDK 21... Мой минимальный SDK - 16. У меня есть библиотека поддержки com.android.support:appcompat-v7:22.0.0 в моем файле gradle сборки. Я хочу создать второй файл стилей в папке значений. Я хочу иметь два файла стилей... один для Lollipop... неактивную версию 22 рядом с ним... и один для предварительного Lollipop. Как это сделать?

4 ответа

Как сказано, создайте папку значений для определенного уровня API

res/values-v21/styles.xml
res/values/styles.xml

В values/styles.xml создать для стилей:

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primaryColor</item>
    <item name="colorPrimaryDark">@color/primaryColorDark</item>
    <item name="colorAccent">@color/accentColor</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style

<style name="AppTheme" parent="AppTheme.Base">
</style>

В values-v21/styles.xml создать для стилей:

<!-- Themes for Android API21 -->
<style name="AppTheme" parent="AppTheme.Base">
    <item name="android:colorPrimary">@color/primaryColor</item>
    <item name="android:colorPrimaryDark">@color/primaryColorDark</item>
    <item name="android:colorAccent">@color/accentColor</item>
</style>

Внутри вашего AndroidManifest.xml ты должен использовать AppTheme как ваша глобальная тема приложения

Далее вы должны использовать Toolbar из библиотеки поддержки вместо панели действий по умолчанию. Вот почему базовая тема устанавливает для панели действий значение false

Как указано в других ответах, вы можете использовать разные файлы styles.xml в разных папках.

Я хотел бы добавить опцию к другим ответам.

Вы можете определить базовый стиль, используемый каждой версией, и настроить атрибуты синглов.

В res/values/styles.xml

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/primaryColor</item>
    <item name="colorPrimaryDark">@color/primaryColorDark</item>
    <item name="colorAccent">@color/accentColor</item>
</style>

<style name="AppTheme" parent="AppTheme.Base">
   <!-- custom pre-Lollipop attributes -->
</style>

В res/values-v21/styles.xml

<style name="AppTheme" parent="AppTheme.Base">
   <!-- custom Lollipop attributes -->
</style>

Наконец, используйте AppTheme в вашей деятельности (вы должны использовать ` ActionBarActivity).

Создайте два файла styles.xml в разных папках, например:

res/values-v21/styles.xml
res/values/styles.xml

Вы должны добавить еще одну папку под названием "values-v21" в вашу директорию "res". Затем создайте "styles.xml" в этом каталоге для ваших стилей Lollipop.

Другие вопросы по тегам