小米 9T Pro 不像模拟器 jetpack-compose 那样显示文本颜色
Xiaomi MI 9T Pro not displaying text colors like emulator jetpack-compose
问题
我正在尝试制作两种颜色的动画,这取决于某些属性,现在代码已完成并且可以在我的模拟器上运行,但不能在我的 Mi 9T Pro 上运行,我还没有在任何其他设备上进行过测试,但我会在它运行后进行测试可能,如果行为相同,我会通知您。
预期行为:
带有彩色动画的简单组合,UI 会相应地对变化做出反应
实际行为(模拟器 Pixel2 API 30)
颜色按预期进行动画处理,并按预期更改为正确的颜色
实际行为(小米9T Pro)
颜色是动态的但有些融合,硬色显示更准确,但柔和的颜色则不然。
模拟器主题颜色正确
模拟器硬色正确
)
小米9T Pro主题色)错误
小米9T Pro硬色错
动画属性
val animContentColor = animateColorAsState(
targetValue = when {
locallySelected -> onPrimaryColor()
else -> onSurfaceColor()
},
animationSpec = colorAnimSpec
)
val animBackgroundColor = animateColorAsState(
targetValue = when {
locallySelected -> primaryColor()
selected -> surface5Color()
else -> surface1Color()
},
animationSpec = colorAnimSpec
)
可组合
ElevatedCard(
modifier = Modifier
.fillMaxWidth(),
contentColor = animContentColor.value,
shape = RoundedCornerShape(4.dp),
) {
Row(
modifier = Modifier
.fillMaxWidth()
.height(48.dp)
.background(color = animBackgroundColor.value)
.clickable(onClick = onClick),
verticalAlignment = Alignment.CenterVertically
) {
AnimatedVisibility(
visible = selected,
) {
Icon(
imageVector = Icons.Rounded.Check,
contentDescription = null,
modifier = Modifier
.padding(start = 16.dp)
)
}
Text(
text = theater.name,
style = TypographyMaterial3.bodyMedium,
modifier = Modifier
.weight(1f)
.padding(start = 16.dp)
)
Text(
text = "15km",
style = TypographyMaterial3.labelSmall,
modifier = Modifier
.padding(horizontal = 16.dp)
)
}
}
问题
这是否可能是设备问题?
编辑
我已经在华为 Phone 上对其进行了测试并按预期工作,所以我相信这可能是小米 device/style
的问题
解决方案
这可能是“Material 你”——无论小米 9T Pro 的 API 级别如何。
问题
我正在尝试制作两种颜色的动画,这取决于某些属性,现在代码已完成并且可以在我的模拟器上运行,但不能在我的 Mi 9T Pro 上运行,我还没有在任何其他设备上进行过测试,但我会在它运行后进行测试可能,如果行为相同,我会通知您。
预期行为:
带有彩色动画的简单组合,UI 会相应地对变化做出反应
实际行为(模拟器 Pixel2 API 30)
颜色按预期进行动画处理,并按预期更改为正确的颜色
实际行为(小米9T Pro)
颜色是动态的但有些融合,硬色显示更准确,但柔和的颜色则不然。
模拟器主题颜色正确
模拟器硬色正确
小米9T Pro主题色)错误
小米9T Pro硬色错
动画属性
val animContentColor = animateColorAsState(
targetValue = when {
locallySelected -> onPrimaryColor()
else -> onSurfaceColor()
},
animationSpec = colorAnimSpec
)
val animBackgroundColor = animateColorAsState(
targetValue = when {
locallySelected -> primaryColor()
selected -> surface5Color()
else -> surface1Color()
},
animationSpec = colorAnimSpec
)
可组合
ElevatedCard(
modifier = Modifier
.fillMaxWidth(),
contentColor = animContentColor.value,
shape = RoundedCornerShape(4.dp),
) {
Row(
modifier = Modifier
.fillMaxWidth()
.height(48.dp)
.background(color = animBackgroundColor.value)
.clickable(onClick = onClick),
verticalAlignment = Alignment.CenterVertically
) {
AnimatedVisibility(
visible = selected,
) {
Icon(
imageVector = Icons.Rounded.Check,
contentDescription = null,
modifier = Modifier
.padding(start = 16.dp)
)
}
Text(
text = theater.name,
style = TypographyMaterial3.bodyMedium,
modifier = Modifier
.weight(1f)
.padding(start = 16.dp)
)
Text(
text = "15km",
style = TypographyMaterial3.labelSmall,
modifier = Modifier
.padding(horizontal = 16.dp)
)
}
}
问题
这是否可能是设备问题?
编辑 我已经在华为 Phone 上对其进行了测试并按预期工作,所以我相信这可能是小米 device/style
的问题解决方案
这可能是“Material 你”——无论小米 9T Pro 的 API 级别如何。