我有一个EmojiAppCompatTextView,其中maxLines设置为2,省略号设置为end,但如果在省略号之后有一个表情符号,它仍然会在省略号之后放置表情符号并使文本在两侧被截断,因为它不够表情符号的空间。
看起来像是Emoji AppCompatTextView中的固有错误,但也许有办法解决它...
应该如何看待(省略号工作正常之前的表情符号):
它看起来如何
有任何想法吗?
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"/>
这是一个相当古老的问题,但这可能会帮助那些可能会像我一样在这里的人:)
在初始化布局时,请将此设置为:
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。