You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中Icon旁Text组件渲染异常问题求助

问题分析与修复

问题原因

你错误地使用stringResource()处理numberOfItems这个普通Int数字。stringResource()的作用是根据字符串资源ID(如R.string.xxx)获取对应字符串,而你传入的普通数字58会被当成资源ID去查找,最终显示的是资源ID对应的内容(或ID本身),而非预期的数字58。

修复方案

直接将numberOfItems转换为字符串即可,无需调用stringResource():

修改CourseCard中对应的Text代码:

Text(
    text = course.numberOfItems.toString(),
    style = MaterialTheme.typography.labelMedium,
    modifier = Modifier
        .padding(start = 8.dp)
)

也可以用字符串模板写法:

Text(
    text = "${course.numberOfItems}",
    style = MaterialTheme.typography.labelMedium,
    modifier = Modifier
        .padding(start = 8.dp)
)

完整修复后的CourseCard代码

@Composable
fun CourseCard(course: Course, modifier: Modifier = Modifier) {
    Card(modifier = modifier) {
        Box {
            Row {
                Image(
                    painter = painterResource(course.imageResourceId),
                    contentDescription = stringResource(course.stringResourceId),
                    contentScale = ContentScale.Crop,
                    modifier = Modifier
                        .size(68.dp, 68.dp)
                        .aspectRatio(0.5f)
                )
                Column {
                    Text(
                        text = stringResource(course.stringResourceId),
                        style = MaterialTheme.typography.bodyMedium,
                        modifier = Modifier
                            .padding(top = 16.dp, start = 16.dp, end = 16.dp, bottom = 8.dp)
                    )
                    Row {
                        Icon(
                            painter = painterResource(R.drawable.ic_grain),
                            contentDescription = null,
                            modifier = Modifier
                                .padding(start = 16.dp)
                        )
                        Text(
                            text = course.numberOfItems.toString(),
                            style = MaterialTheme.typography.labelMedium,
                            modifier = Modifier
                                .padding(start = 8.dp)
                        )
                    }
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Alexandru Gheorghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:25:03