【问题标题】:Appcompat v7 Material checkbox changing color to default black in Lollipop devicesAppcompat v7 Material 复选框在 Lollipop 设备中将颜色更改为默认黑色
【发布时间】:2015-05-29 17:57:30
【问题描述】:

我正在使用 appcompat v7 材质复选框。我的项目主题是浅蓝色,所以我在 styles.xml 中为我的复选框检查颜色分配浅蓝色,如下所示

<!--checked color-->
<item name="colorAccent">@color/light_blue</item> 

<!--un checked color--> 
<item name="android:textColorSecondary">@color/secondary_text</item>  

在我的布局文件中

    <CheckBox
        android:id="@+id/chk_tick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@drawable/abc_btn_check_material"
        android:layout_gravity="center"/>

kitkat 以下的版本一切正常,但只有棒棒糖版本才会出现问题(默认情况下,它会自动分配黑色)。我真的不知道为什么会这样。请帮助我解决您的问题。提前致谢

【问题讨论】:

  • 你确定你没有另一个用于 v21 的 style.xml 文件吗?
  • 我认为你可能需要&lt;item name="android:colorAccent"&gt;@color/light_blue&lt;/item&gt; 来使用棒棒糖(虽然这可能是自动的,具体取决于你继承自哪个主题)
  • @tyczj 我没有单独的 v21 样式

标签: android checkbox android-5.0-lollipop material-design android-appcompat


【解决方案1】:

删除这一行:

android:button="@drawable/abc_btn_check_material"

您的CheckBox 应自动设置样式,无需设置android:button 属性。

【讨论】:

  • @njzk2 是的 - 这就是使用 AppCompat 的原因
  • 很好@questioner。谢谢你,它真的帮了我很多。谢谢你们 njzk2 和 tyczj。
【解决方案2】:

使用 AppCombat 复选框以获得最佳效果

<android.support.v7.widget.AppCompatCheckBox
    android:id="@+id/chkSelected"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/white"
   />

之后转到styles.xml并创建新样式如下

   <style name="SampleTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="colorAccent">@color/colorAccent</item>
            <item name="android:textColorSecondary">@color/red</item>
        </style>

这还没有完成,转到你的清单 xml

 <activity
        android:name=".yourActivity"
        android:theme="@style/SampleTheme" /> 

这也适用于 pre_lollipop 设备。快乐编码:)

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 2014-12-21
    相关资源
    最近更新 更多