PreferenceScreen 中的 ColorAccent 在 API <=22 中无法正常工作
ColorAccent in PreferenceScreen not working correctly in API <=22
我在模拟器上安装了 API 22 并注意到 ListPreferences 和 Preferences 中的 RadioButtons 和 Buttons 没有更改为样式文件中规定的正确颜色.在 API >22 上它工作正常。此问题仅出现在 SettingsActivity 中使用的 PreferenceScreen 中。
我要的颜色是#76B900(绿色)
我得到的是默认的Android淡蓝色颜色
主题已在 manifest 中注册:
<activity
android:name="com.Test.App.SettingsActivity"
android:label="@string/title_activity_settings"
android:windowSoftInputMode="adjustPan"
android:theme="@style/PreferencesTheme"
android:screenOrientation="portrait"/>
首选项主题 (styles.xml):
<style name="PreferencesTheme" parent="Theme.AppCompat">
<item name="android:windowBackground">@color/background</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/primaryText</item>
<item name="android:textColorSecondary">@color/settingsSubtext</item>
<item name="android:colorBackground">@color/background</item>
<item name="android:textColorPrimaryInverse">@color/primaryText</item>
</style>
首选项主题 (styles.xml (v21)):
<style name="PreferencesTheme" parent="Theme.AppCompat">
<item name="android:windowBackground">@color/background</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/primaryText</item>
<item name="android:textColorSecondary">@color/settingsSubtext</item>
<item name="android:colorBackground">@color/background</item>
<item name="android:textColorPrimaryInverse">@color/primaryText</item>
<item name="android:colorAccent">@color/colorAccent</item>
</style>
颜色 (colors.xml):
<color name="colorPrimary">#0F0F0F</color> - Black
<color name="colorPrimaryDark">#000000</color> - Black
<color name="colorPrimaryLight">#C8E6C9</color> - Light Green
<color name="colorAccent">#76B900</color> - Green
<color name="primaryText">#FFFFFF</color> - White
<color name="secondaryText">#757575</color> - Gray
<color name="background">#333333</color> - Dark Gray
默认 Android 浅蓝色未在颜色或样式文件中的任何位置设置。
我遇到了类似的问题。
将此添加到您的样式文件中:
<style name="AlertDialogCustom" parent="android:Theme.Material.Dialog.Alert">
<item name="colorAccent">@color/colorAccent</item>
<item name="android:colorAccent">@color/colorAccent</item>
</style>
将此添加到您的 PreferenceTheme
样式中:
<item name="android:alertDialogTheme">@style/AlertDialogCustom</item>
按钮现在应该是正确的 colorAccent
颜色。
我在模拟器上安装了 API 22 并注意到 ListPreferences 和 Preferences 中的 RadioButtons 和 Buttons 没有更改为样式文件中规定的正确颜色.在 API >22 上它工作正常。此问题仅出现在 SettingsActivity 中使用的 PreferenceScreen 中。
我要的颜色是#76B900(绿色)
我得到的是默认的Android淡蓝色颜色
主题已在 manifest 中注册:
<activity
android:name="com.Test.App.SettingsActivity"
android:label="@string/title_activity_settings"
android:windowSoftInputMode="adjustPan"
android:theme="@style/PreferencesTheme"
android:screenOrientation="portrait"/>
首选项主题 (styles.xml):
<style name="PreferencesTheme" parent="Theme.AppCompat">
<item name="android:windowBackground">@color/background</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/primaryText</item>
<item name="android:textColorSecondary">@color/settingsSubtext</item>
<item name="android:colorBackground">@color/background</item>
<item name="android:textColorPrimaryInverse">@color/primaryText</item>
</style>
首选项主题 (styles.xml (v21)):
<style name="PreferencesTheme" parent="Theme.AppCompat">
<item name="android:windowBackground">@color/background</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/primaryText</item>
<item name="android:textColorSecondary">@color/settingsSubtext</item>
<item name="android:colorBackground">@color/background</item>
<item name="android:textColorPrimaryInverse">@color/primaryText</item>
<item name="android:colorAccent">@color/colorAccent</item>
</style>
颜色 (colors.xml):
<color name="colorPrimary">#0F0F0F</color> - Black
<color name="colorPrimaryDark">#000000</color> - Black
<color name="colorPrimaryLight">#C8E6C9</color> - Light Green
<color name="colorAccent">#76B900</color> - Green
<color name="primaryText">#FFFFFF</color> - White
<color name="secondaryText">#757575</color> - Gray
<color name="background">#333333</color> - Dark Gray
默认 Android 浅蓝色未在颜色或样式文件中的任何位置设置。
我遇到了类似的问题。
将此添加到您的样式文件中:
<style name="AlertDialogCustom" parent="android:Theme.Material.Dialog.Alert">
<item name="colorAccent">@color/colorAccent</item>
<item name="android:colorAccent">@color/colorAccent</item>
</style>
将此添加到您的 PreferenceTheme
样式中:
<item name="android:alertDialogTheme">@style/AlertDialogCustom</item>
按钮现在应该是正确的 colorAccent
颜色。