Стиль по умолчанию в проекте Android с определенными версиями Android

Я хочу приспособиться к более старым версиям Android (скажем, от 17 до 20) с особыми характеристиками стиля. Итак, я сделал это:

  • values/styles.xml (то, что я думаю, должно быть по умолчанию)
  • значения-v17/styles.xml
  • значения-v18/styles.xml
  • значения-v19/styles.xml
  • значения-v20/styles.xml

В моем файле values/styles.xml я сохраняю значения по умолчанию для версий 21+. Однако стиль, который на самом деле применяется как в предварительном просмотре, так и в виртуальном устройстве, — это стиль v20, для версии дисплея 21 и выше. Если я стираю values-v20/styles.xml, то следующий в очереди, v19, вступает во владение. Почему не используется стиль по умолчанию?

Простой пример:

значения-v20/styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Button.AccentButton" parent="Theme.AppCompat">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:background">@color/red</item>
    </style>
</resources>

значения /styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Button.AccentButton" parent="Theme.AppCompat">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:background">@color/green</item>
    </style>
</resources>

Конечный результат: кнопка v21+ горит красным, должна быть зеленой.


person MPelletier    schedule 07.10.2016    source источник


Ответы (1)


Это работает наоборот!

  • values/styles.xml (по умолчанию для всех версий ниже минимальной указанной)
  • values-v21/styles.xml (значения для v21+)

Другими словами, папка с первой версией также применяется ко всем последующим версиям. Папка без версий применяется к версиям ниже папки с самой низкой версией.

person MPelletier    schedule 07.10.2016