小米12T中totalizador1TextView文本颜色无法修改问题求助
解决MIUI下TextView文本颜色无法修改的问题
针对小米12T(MIUI Global 14.0.13、Android 13TP1A)上totalizador1TextView文本始终为黑色、代码设置颜色无效的问题,可尝试以下几种解决方案:
1. 排查代码覆盖问题
确认设置颜色的代码没有被后续逻辑覆盖。比如onCreate之后,是否在onResume、异步回调或数据更新逻辑中重新设置了文本颜色。可以在setTextColor后立刻打印当前颜色值,验证代码是否执行:
totalizador1TextView.setTextColor(ContextCompat.getColor(this, R.color.amarelo)); Log.d("TextViewColor", "当前颜色值: " + totalizador1TextView.getCurrentTextColor());
2. 绕过MIUI主题强制覆盖
MIUI的主题特性可能会强制重置TextView颜色,可尝试两种方式规避:
- 方式一:用
ColorStateList直接设置
ColorStateList colorStateList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.amarelo)); totalizador1TextView.setTextColor(colorStateList);
- 方式二:在布局中为TextView单独指定基础样式
在XML布局里给totalizador1TextView添加属性,避免继承主题的强制颜色:
<TextView android:id="@+id/totalizador1TextView" ... android:textColor="@color/amarelo" android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
3. 调整主题配置
当前主题已关闭forceDarkAllowed,但可进一步优化主题设置:
- 将主题父类改为明确的浅色主题,替代DayNight主题:
<style name="MeuTema" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/amarelo_torrado</item> <item name="colorPrimaryDark">@color/encarnado</item> <item name="colorAccent">@color/verde</item> <item name="textAllCaps">false</item> <item name="android:textAllCaps">false</item> <item name="android:forceDarkAllowed">false</item> <item name="android:textColorPrimary">@color/your_default_text_color</item> </style>
- 提前设置主题再执行父类
onCreate:
@Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.MeuTema); AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); super.onCreate(savedInstanceState); setContentView(R.layout.your_layout); totalizador1TextView = findViewById(R.id.totalizador1TextView); totalizador1TextView.setTextColor(ContextCompat.getColor(this, R.color.amarelo)); }
4. 关闭MIUI深色模式优化
进入手机设置 -> 显示 -> 深色模式 -> 高级设置,关闭"应用深色模式优化"选项,重启应用后测试颜色是否生效。
内容的提问来源于stack exchange,提问作者João Marques
相关产品推荐
相关产品推荐

