带有变音符号的自定义字体 - Android 7 上相同符号的不同字体

Custom font with diacritic - different font on same signs on Android 7

我的应用程序中的自定义字体有问题。有时有效,有时无效。

我有带片段的 ViewPager。在片段 2 中,我有带有以编程方式添加的 TextView 的 LinearLayout。多次添加相同的 TextView 布局。在第一个 TextView 上一切正常,但在其他上它有变音符号的问题。

对于自定义字体,我使用 Calligraphy,但我也尝试使用 Support Library 26 中的字体系列,结果相同。 TextViews 应该使用默认字体,但是当我更改样式中的字体或以编程方式设置字体时,我再次得到相同的结果。

该问题仅出现在Android 7(在Nexus 5X、Huawei P10 Lite 上测试)。 在三星 Galaxy S4、华为 Mate 10 pro - 一切正常。

我遇到了类似的问题,但使用的是斜体。它不适合 space,最后一个和第一个项目被切断了。我不得不覆盖 onMeasure 并添加一些 space。我会这样做:

    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec)
    val tenPercentHeight = measuredHeight * 0.1f
    val adjustedHeight = measuredHeight + tenPercentHeight.toInt()

    setMeasuredDimension(adjustedHeight, measuredHeight)
    requestLayout()
}

我找到了解决方案。问题出在文本本身,而不是观点。确切原因是字符编码。此变音符号编码不正确。然而,奇怪的是问题只发生在一个 Android 版本上。 iOS 上也使用了相同的文本,一切都很好。