Android 无法获取材质设计复选框以使用样式
我正在尝试将两个复选框视图添加到我当前应用程序的反馈片段中,该应用程序正在使用AppCompat库(v7:22.2.1)。此应用程序的API范围为当前16(22)。我的清单是使用以下主题定义设置的:Android 无法获取材质设计复选框以使用样式,android,checkbox,material-design,android-theme,Android,Checkbox,Material Design,Android Theme,我正在尝试将两个复选框视图添加到我当前应用程序的反馈片段中,该应用程序正在使用AppCompat库(v7:22.2.1)。此应用程序的API范围为当前16(22)。我的清单是使用以下主题定义设置的: android:theme=“@style/AppTheme” 在我的styles.xml文件中定义如下: <resources> <!-- Base application theme. --> <style name="AppTheme" pare
android:theme=“@style/AppTheme”
在我的styles.xml
文件中定义如下:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.FacebookFlatButton">
<item name="android:background">@drawable/facebook_flat_button</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="AppTheme.TwitterFlatButton">
<item name="android:background">@drawable/twitter_flat_button</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:textColor">@android:color/white</item>
</style>
</resources>
@可拖动/平面按钮
?android:attr/textAppearanceMedium
@android:彩色/白色
@可拖动/推特按钮
?android:attr/textAppearanceMedium
@android:彩色/白色
问题是我的复选框(我也注意到我的EditText)视图没有默认为正确的颜色,因此在选中时它们是可查看的。以下是Android Studio和我的模拟器中的预览屏幕截图:
无论我将其他SO文章中的样式项组合成什么样式,例如,颜色在模拟器或设备上都不会改变,但在预览中会更新。我也尝试过对我的自定义主题的父主题进行各种调整,但似乎没什么关系
我已经在Nexus5(API 19)和Nexus6(API 22)仿真器中试过了,它在我的Nexus6设备上也做过同样的事情
我在这里并没有定义太多的自定义,但我仍然觉得我在这里遗漏了一些重要的小信息。我遗漏了什么?您需要为其指定颜色,将其放在主样式“AppTheme”的行下方
<item name="colorAccent">@color/color_primary</item>
@color/color\u primary
这将更改您的复选框和edittext颜色。好的,经过大量的研究和测试,我有了一个解决方案,可以同时适用于我的复选框和edittext控件 就我而言,(糟糕的)假设是一个主题可以处理AppCompat和材料设计,这是不正确的。基本上,对于AppCompat(
android:
前缀,例如复选框和编辑文本:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.EditText" parent="Widget.AppCompat.EditText">
<item name="colorControlNormal">@color/almanac_red_dark</item>
<item name="colorControlActivated">@color/almanac_red_light</item>
<item name="colorControlHighlight">@color/almanac_red_light</item>
</style>
<style name="AppTheme.CheckBox">
<item name="colorAccent">@color/almanac_red_dark</item>
</style>
<style name="AppTheme.FlatButton">
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="AppTheme.FacebookFlatButton" parent="AppTheme.FlatButton">
<item name="android:background">@drawable/facebook_flat_button</item>
</style>
<style name="AppTheme.TwitterFlatButton" parent="AppTheme.FlatButton">
<item name="android:background">@drawable/twitter_flat_button</item>
</style>
</resources>
我已经在Nexus 4(API 16)、Nexus 5(API 19)和Nexus 6(API 22)模拟器以及我的物理Nexus 6设备上进行了尝试,一切都如我所料。我在原始帖子中链接的SO文章中提到了这一点。它不起作用。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Material.Light">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.EditText">
<item name="android:colorControlNormal">@color/almanac_red_dark</item>
<item name="android:colorControlActivated">@color/almanac_red_light</item>
<item name="android:colorControlHighlight">@color/almanac_red_light</item>
</style>
<style name="AppTheme.CheckBox">
<item name="android:colorAccent">@color/almanac_red_dark</item>
</style>
</resources>