質量

特技は長座体前屈です

Android 8.0 ではtextColorPrimaryにcolorForgroundの色が使われる

Android 8.0未満とAndroid 8.0でtextColorPrimaryの色が違って困惑した。

SwithCompatの色を変えるのにstyle.xmlのthemeに <item name="android:colorForeground">#00FF00</item>とか書いておくと8.0ではtextColorPrimaryに使われてしまうので注意。

SwithCompat用にthemeを定義してxmlでテーマを指定するとよさそう。

android-25/data/res/values/themes_material.xml

<item name="textColorPrimary">@color/primary_text_material_dark</item>

android-26/data/res/values/themes_material.xml

<item name="textColorPrimary">@color/text_color_primary</item>

/Users/teshi/android_sdk/platforms/android-26/data/res/color/text_color_primary.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false"
        android:alpha="?attr/disabledAlpha"
        android:color="?attr/colorForeground"/>
    <item android:alpha="?attr/primaryContentAlpha"
        android:color="?attr/colorForeground"/>
</selector>