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" />
相关推荐
霸道流氓气质6 分钟前
Saga模式入门与实战:编排与协同模式、补偿设计原则与Java生产级实现
java·开发语言
美狐美颜SDK开放平台9 分钟前
直播APP平台搭建需要哪些技术?视频美颜SDK只是其中一环
android·ios·音视频·直播美颜sdk·视频美颜sdk
江湖有缘11 分钟前
Docker实战 | 使用Docker部署Readeck书签管理工具
java·docker·eureka
小毛驴85015 分钟前
mvn help:effective-settings 与 mvn help:effective-pom
java·linux·前端
silvamux_28 分钟前
OpenAI Python SDK v1 迁移实战
开发语言·python
silvamux_28 分钟前
MiniMax API 调用教程:兼容 OpenAI 写法
java·数据库·elasticsearch
旋生万物29 分钟前
螺旋数不是玄学:Python 实现广义复数与等角螺线
开发语言·人工智能·python·云原生·aigc·软件工程·后端开发
半杯咖啡半行码29 分钟前
Linux字符设备驱动实战:ioctl接口与GPIO操作指南
linux·开发语言
ZoeLandia30 分钟前
TypeScript 07:工程化——import type、声明文件与 tsconfig
开发语言·前端·typescript
染指111032 分钟前
145.Agent-LangGraph基础概念和安装和简单代码示例
java·服务器·数据库·langchain·agents