From 8c98df64ff1d6437e75317583ae6bd4073976706 Mon Sep 17 00:00:00 2001 From: charleswkh <39009330+charleswkh@users.noreply.github.com> Date: Thu, 5 Sep 2019 18:24:34 +0800 Subject: [PATCH] Bug fix Fix some languages wrapped texts are cut off on android --- .../react/views/text/ReactTextShadowNode.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java index 5cf16db80f0fd4..d2d1f6a9877131 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java @@ -110,6 +110,9 @@ public long measure( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { builder.setJustificationMode(mJustificationMode); } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + builder.setUseLineSpacingFromFallbacks(true); + } layout = builder.build(); } @@ -134,14 +137,18 @@ public long measure( new StaticLayout( text, textPaint, (int) width, alignment, 1.f, 0.f, mIncludeFontPadding); } else { - layout = + StaticLayout.Builder builder = StaticLayout.Builder.obtain(text, 0, text.length(), textPaint, (int) width) .setAlignment(alignment) .setLineSpacing(0.f, 1.f) .setIncludePad(mIncludeFontPadding) .setBreakStrategy(mTextBreakStrategy) - .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(); } }