Пользовательский шрифт с диакритическим знаком - другой шрифт с одинаковыми знаками на Android 7

У меня проблема с пользовательским шрифтом в моем приложении. Иногда это работает, иногда нет.

У меня есть ViewPager с фрагментами. Во фрагменте 2 у меня есть LinearLayout с программно добавленными TextViews. Один и тот же макет TextView добавлен много раз. На первом TextView все работает нормально, но на других есть проблемы с диакритическими знаками.

Для пользовательских шрифтов я использую Calligraphy, но я также пытался использовать семейство шрифтов из библиотеки поддержки 26 с тем же результатом. TextViews должен использовать шрифт по умолчанию, но опять же, когда я изменяю шрифт в стиле или устанавливаю гарнитуру программно, я получаю тот же результат.

Проблема возникает только на Android 7 (проверено на Nexus 5X, Huawei P10 Lite). На Samsung Galaxy S4, Huawei Mate 10 pro - все отлично работает.

2 ответа

Решение

Я нашел решение. Проблема была с самим текстом, а не с мнениями. Точной причиной была кодировка символов. Этот диакритический знак не был в правильном кодировании. Однако все еще странно, что проблема возникает только на одной версии Android. Тот же текст был использован на iOS, и там все было хорошо.

У меня была похожая проблема, но с курсивом. Это не соответствовало пространству, и последний и первый пункт был отрезан. Я должен был переопределить onMeasure и добавить немного места. Я бы сделал это так:

    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()
}
Другие вопросы по тегам