From 246f7469422637acc00f072222082ea5b58503e7 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Wed, 23 Sep 2020 05:58:20 -0700 Subject: [PATCH] Set useLineSpacingFromFallbacks when measuring text Summary: Changelog: [internal] When paper measures text, it sets `useLineSpacingFromFallbacks` flag on the Layout object. In Fabric this was missing and can cause incorrect layout. Reviewed By: JoshuaGross Differential Revision: D23845441 fbshipit-source-id: 538f440cdbbf8df2cba0458837b80db103888113 --- .../facebook/react/views/text/TextLayoutManager.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java index 92073cd3392124..34ad7c4e9af018 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java @@ -326,14 +326,19 @@ private static Layout createLayout( 0.f, includeFontPadding); } else { - layout = + StaticLayout.Builder builder = StaticLayout.Builder.obtain(text, 0, spanLength, textPaint, (int) width) .setAlignment(Layout.Alignment.ALIGN_NORMAL) .setLineSpacing(0.f, 1.f) .setIncludePad(includeFontPadding) .setBreakStrategy(textBreakStrategy) - .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL) - .build(); + .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + builder.setUseLineSpacingFromFallbacks(true); + } + + layout = builder.build(); } } return layout;