EmojiCompat Flags 不适用于 Marshmallow 及更高版本(但适用于较旧的操作系统版本)

Ale*_*scu 5 android android-support-library

我正在尝试使用新的EmojiCompatTextView. 它适用于较旧的 Android 版本,但在 Marshmallow 及以上版本上显示占位符问号标志。这是 XML:

            <android.support.text.emoji.widget.EmojiAppCompatTextView
                android:id="@+id/opponent_flag"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="8dp"
                android:textSize="14sp"
                android:text=""
                android:layout_gravity="center_vertical"
                />
Run Code Online (Sandbox Code Playgroud)

以及初始化 EmojiCompat 的代码(直接来自谷歌文档):

val config: EmojiCompat.Config
// Use a downloadable font for EmojiCompat
val fontRequest = FontRequest(
        "com.google.android.gms.fonts",
        "com.google.android.gms",
        "Noto Color Emoji Compat",
        R.array.com_google_android_gms_fonts_certs)
config = FontRequestEmojiCompatConfig(applicationContext, fontRequest)
        .setReplaceAll(true)
        .registerInitCallback(object : EmojiCompat.InitCallback() {
            override fun onInitialized() {
                Log.i(TAG, "EmojiCompat initialized")
            }

            override fun onFailed(@Nullable throwable: Throwable?) {
                Log.e(TAG, "EmojiCompat initialization failed", throwable)
            }
        })
EmojiCompat.init(config)
Run Code Online (Sandbox Code Playgroud)

EmojiCompat initialized在日志中收到消息,事实上,除了标志之外,我尝试过的所有其他表情符号都可以工作。

以下 Lollipop 和 Nougat 的屏幕截图显示了它应该如何工作以及如何不工作: 在此处输入图片说明在此处输入图片说明

小智 0

看起来是一个错误,最近谷歌声称已修复,但不幸的是,有迹象表明并非如此。

https://issuetracker.google.com/issues/72084134