首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android appcompat-v7:21.0.0更改材质复选框颜色

Android appcompat-v7:21.0.0更改材质复选框颜色
EN

Stack Overflow用户
提问于 2014-11-10 19:44:50
回答 18查看 71.9K关注 0票数 64

我已经更新了我的项目以使用最新的appcompat支持库,新版本使用了材料设计复选框和单选按钮。我的应用程序是黑色主题的,复选框是黑色的,很难看到。我正在尝试根据Maintaining Compatibility更改它们的颜色,但到目前为止还没有起作用。

res/values/styles.xml

代码语言:javascript
复制
  <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">

    <!-- customize the color palette -->
    <item name="colorAccent">@color/silver</item>
  </style>

Build.gradle中的

代码语言:javascript
复制
    android {
      compileSdkVersion 21
      buildToolsVersion '21.1.1'

      defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
      }
    }

.....
.....    

    compile 'com.android.support:appcompat-v7:21.0.0'

AndroidManifest.xml:

代码语言:javascript
复制
  <application
      android:name="ee.mtakso.App"
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppBaseTheme">

复选框、editTexts、单选按钮等保持黑色。

编辑

我不知道这是否有什么不同,但我使用的单选按钮和复选框是用于CheckedTextView的,如下所示:

Single (单选按钮): android:checkMark="?android:attr/listChoiceIndicatorSingle"

多个(复选框): android:checkMark="?android:attr/listChoiceIndicatorMultiple"

由于这些得到的黑色材料可绘制,我认为问题不是来自他们。

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2014-11-11 02:42:46

我在未检查的 CheckBoxes和RadioButtons上也遇到了类似的问题。我找到了解决方案,当我发现控件将它们的颜色从

<item name="android:textColorSecondary">@color/secondary_text</item>

编辑:

指定如果您的应用程序或activity的主题继承了L的AppCompat (暗/亮/亮.DarkActionBar)之一,您可以设置:

代码语言:javascript
复制
<style name="SampleTheme" parent="Theme.AppCompat">
    <item name="colorAccent">@color/green</item>
    <item name="android:textColorSecondary">@color/red</item>
</style>

这就是结果:

注意:当你得到不同的效果时,你可能使用了“错误的”主题--确保你设置正确。

票数 127
EN

Stack Overflow用户

发布于 2015-01-17 00:05:05

我认为这是AppCompat主题中的一个错误。我的变通方法是向xml布局文件中的每个CheckBox添加两行代码。

代码语言:javascript
复制
android:button="@drawable/abc_btn_check_material"
android:buttonTint="@color/colorAccent"

您永远不会真正想直接引用abc_可绘制内容,但在这种情况下,我找不到其他解决方案。

这也适用于RadioButton小部件!您只需使用abc_btn_radio_material而不是abc_btn_check_material

票数 37
EN

Stack Overflow用户

发布于 2016-04-28 04:43:56

我这样做是为了至少更改复选框的边框:

代码语言:javascript
复制
<style name="checkBoxComponent" parent="AppTheme">
    //Checked color
    <item name="colorAccent">@color/blueBackground</item> 
    //Checkbox border color
    <item name="android:textColorSecondary">@color/grayBorder</item> 
</style>

在我的布局中

代码语言:javascript
复制
<android.support.v7.widget.AppCompatCheckBox
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:theme="@style/checkBoxComponent"
                        android:text="Yay" />

不过,我还在想如何获得复选框的背景。希望能有所帮助。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26843098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档