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>