我正在尝试在我的应用程序中为 Android 10 及更低版本启用现代表情符号支持。 为此,我按照本指南将 appcompat 升级到版本 1.4.0https://developer.android.com/develop/ui/views/text-and-emoji/emoji2
然而,现代表情符号仍然没有出现。 我也已经在https://developer.android.com/develop/ui/views/text-and-emoji/emoji2#appcompat-displays-tofu中查看并验证了说明。
然后我尝试了第二种方法——直接包含 emoji2 依赖项并在我的布局中使用 androidx.emoji2.widget.EmojiTextView 而不是 AppCompatEditText。这本身不起作用。
但是,当我从清单中明确禁用 EmojiCompatInitializer 并在我的应用程序中初始化 EmojiCompat 时,它会起作用。即,
清单中:
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
tools:node="remove"/>
</provider>
在我的创建活动中:
val fontRequest = FontRequest(
"com.google.android.gms.fonts",
"com.google.android.gms",
"Noto Color Emoji Compat",
R.array.com_google_android_gms_fonts_certs
)
val config = context?.let { FontRequestEmojiCompatConfig(it, fontRequest) }
if (config != null) {
EmojiCompat.init(config)
}
但这不是文档推荐的方法,因为它需要自定义初始化并在布局文件中使用显式 EmojiTextView。
有人可以帮我理解为什么只升级 appcompat 对我不起作用吗?