表情符号AppCompatTextView带有省略号和表情符号,之后无法正常工作

问题描述 投票:1回答:1

我有一个EmojiAppCompatTextView,其中maxLines设置为2,省略号设置为end,但如果在省略号之后有一个表情符号,它仍然会在省略号之后放置表情符号并使文本在两侧被截断,因为它不够表情符号的空间。

看起来像是Emoji AppCompatTextView中的固有错误,但也许有办法解决它...

应该如何看待(省略号工作正常之前的表情符号):

emoji before ellipsis

它看起来如何

emoji after ellipsis

有任何想法吗?

textviews xml for good measure:

<android.support.text.emoji.widget.EmojiAppCompatTextView
        android:id="@+id/description"
        app:fontPath="fonts/Lato-LightItalic.ttf"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:textAlignment="center"
        android:textSize="13sp"/>
android textview emoji
1个回答
0
投票

这是一个相当古老的问题,但这可能会帮助那些可能会像我一样在这里的人:)

在初始化布局时,请将此设置为:

tv_message?.viewTreeObserver?.addOnGlobalLayoutListener { fixEmojiAfterEllipses() }

并在布局短语后修复它:

@SuppressLint("SetTextI18n")
private fun fixEmojiAfterEllipses() {
    tv_message?.let {
        val count = it.layout?.getEllipsisCount(0) ?: 0
        if (count > 0) {
            it.text = "${it.text.substring(0, it.text.length - count)}..."
        }
    }
}

这可能会让你知道如何在你的情况下修复它...只是不要忘记将参数更改为getEllipsesCount。

© www.soinside.com 2019 - 2024. All rights reserved.