Reputation: 793
I have a problem with custom font in my app. Sometimes it works, sometimes not.
I have ViewPager with fragments. In fragment 2 I have LinearLayout with programmatically added TextViews. Same TextView layout added many times. On first TextView everything works fine, but on others it have problem with diacritic signs.
For custom fonts I use Calligraphy, but I also tried to use font family from Support Library 26 with same result. TextViews should use default font, but again when I change font in style or set typeface programmatically I end up with same result.
The problem occurs only on Android 7 (tested on Nexus 5X, Huawei P10 Lite). On Samsung Galaxy S4, Huawei Mate 10 pro - everything works fine.
Upvotes: 7
Views: 358
Reputation: 793
I found the solution. The problem was with the text itself, not with the views. The exact reason was the characters encoding. This diacritic signs wasn't in proper encoding. However it is still strange that problem occurs only on one Android version. Same text was also used on iOS, and there everything was fine.
Upvotes: 1
Reputation: 747
I had a similar issue but with Italic font. It was not fitting the space and last and first item was cut off. I had to override onMeasure
and add some space. I would do it like this:
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()
}
Upvotes: 0