不同的 styles.xml 对应不同的 api

Different styles.xml for different api's

我的应用程序中有以下 styles.xml 来加载 progressspinner:

<style name="MyProgressBarSpinner" parent="@style/Widget.AppCompat.ProgressBar">
    <item name="android:indeterminateDrawable">@drawable/progressspinner</item>
    <item name="android:minHeight">80dp</item>
    <item name="android:minWidth">80dp</item>
</style>

不幸的是,我需要为 Android-versions < 23 加载另一个 progressspinner。因此我将 values-v16 添加到包含 styles.xmlvalues-v22 文件夹,如下所示:

<resources>
    <style name="MyProgressBarSpinner" parent="@style/Widget.AppCompat.ProgressBar">
        <item name="android:indeterminateDrawable">@drawable/progressspinnerv19</item>
        <item name="android:minHeight">80dp</item>
        <item name="android:minWidth">80dp</item>
    </style>
</resources>

但现在当我使用 android > 23 启动应用程序时,它也使用 progressspinnerv19 而不是主要 styles.xml.

我做错了什么?

values-vXX 文件夹的语义是您放在那里的内容将在版本 XX 和以上 中使用。这就是为什么您也在 android > 23 上看到该内容。

原始 styles.xml 中的内容将用于以前的 API 版本。