如何在 Jetpack Compose 中显示表情符号?

Abh*_*bhi 3 android emoji android-jetpack-compose android-jetpack-compose-text

无法使用 Jetpack Compose 正确显示表情符号。

代码

    Text(
        text = data.emoji.character,
        textAlign = TextAlign.Center,
        fontSize = 28.sp,
    )
Run Code Online (Sandbox Code Playgroud) Jetpack 撰写文本

使用 Compose 时Text,我面临兼容性问题。
豆腐和多个表情符号按此处的说明出现。

为了解决这个问题,我尝试使用AppCompatTextViewin AndroidView

代码

    AndroidView(
        factory = { context ->
            AppCompatTextView(context).apply {
                text = data.emoji.character
                textSize = 28F
                textAlignment = View.TEXT_ALIGNMENT_CENTER
            }
        },
    )
Run Code Online (Sandbox Code Playgroud)

它显示表情符号没有任何兼容性问题,但表情符号淡出。

Phi*_*hov 5

我找到了这个问题,这可能与您的Text问题有关。它已在 Compose 1.4.0中修复。

至于AppCompatTextView,它具有默认的半透明文本颜色。用 alpha 设置任何颜色1f可以解决这个问题:

AppCompatTextView(context).apply {
    setTextColor(Color.Black.toArgb())
    text = " hello"
    textSize = 28F
    textAlignment = View.TEXT_ALIGNMENT_CENTER
}
Run Code Online (Sandbox Code Playgroud)