Android 开发问题:全局的主题颜色设置,导致 CheckBox 控件在勾选状态下不显示样式

xml 复制代码
<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.AutomaticDeviceDispenser" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/white</item>
        <item name="colorPrimaryVariant">@color/white</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/white</item>
        <item name="colorSecondaryVariant">@color/white</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
        <item name="windowNoTitle">true</item>
    </style>
</resources>
xml 复制代码
<android.widget.CheckBox
    android:id="@+id/cb_append_newline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"
    android:text="补 \\r\\n" />
问题原因
  • 在 Android 开发中,在应用上述主题的情况下,CheckBox 控件在勾选状态下不显示样式
  1. 上述主题将几乎所有颜色都设置为了白色,该项目中 CheckBox 使用了 colorSecondary 做为勾选框的颜色

  2. 而背景也因为是白色或浅色,所以白色的勾选框在白色背景上就像是不显示一样

处理策略
  • 在 CheckBox 上添加 app:buttonTint 属性,覆盖全局的主题颜色设置
xml 复制代码
<android.widget.CheckBox
    android:id="@+id/cb_append_newline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:buttonTint="@color/black"
    android:checked="true"
    android:text="补 \\r\\n" />
相关推荐
程序员黑豆1 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
风流 少年2 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅2 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
2603_965148112 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
小席是个热心肠3 小时前
AI相关的自我学习
java·人工智能·学习
知无不研5 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
数智化管理手记5 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
cfm_29145 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
鲸采云SRM采购管理系统6 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
C++ 老炮儿的技术栈7 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐