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

Compose多行文本表情显示行高适配问题求助

Compose中AnnotatedString嵌入表情的行高适配问题

问题背景

我正在开发带有表情的聊天功能,使用Compose的AnnotatedString中的InlineTextContent替代XML里的SpannableString,实现代码如下:

inlineContentMap["dragon"] = InlineTextContent(
     Placeholder(32.sp, 32.sp, PlaceholderVerticalAlign.TextCenter) {
                        AsyncImage(
                            model = dragonUrl,
                            contentDescription = null,
                            modifier = Modifier.size(32.dp),
                            contentScale = ContentScale.Crop
                        )
                    }
)

var annotedString = buildAnnotatedString {
   append("a test with multiline text and an emote")
   appendInlineContent(id = "dragon")
}

Text(
  text = annotatedString,
  inlineContent = inlineContentMap,
  fontSize = 16.sp
)

现有问题

当前实现在单行文本或表情尺寸不超过文本行高的多行文本中表现正常,但和SpannableString存在差异:SpannableString会自动调整表情所在行的行高以适配图片尺寸,而Compose不会——表情会被当前行高截断,无法完整显示。

尝试的解决方案及崩溃问题

我尝试给表情所在行单独设置行高,代码如下:

addStyle(ParagraphStyle(lineHeight = 32.sp), start = 35, end = annotedString.length)

但只要给包含InlineTextContent的行添加ParagraphStyle,就会触发越界崩溃,报错信息如下:

FATAL EXCEPTION: main                                                                                                
Process: video.joinbits.beta, PID: 21884                                                                                                
java.lang.IllegalArgumentException: ParagraphStyle range [40, 46) is out of boundary                                                                                                
at androidx.compose.ui.text.AnnotatedString.<init>(AnnotatedString.kt:70)                                                                                                   
at androidx.compose.ui.text.AnnotatedString$Builder.toAnnotatedString(AnnotatedString.kt:519)

求助需求

希望找到方法实现和XML中SpannableString一致的表情行高适配效果:表情所在行自动增高,完整显示表情,同时不影响其他行的正常行高。

内容的提问来源于stack exchange,提问作者Bastien Calone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:10:34