mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Text: Implement textAlign justify for android O+ (#22477)
Summary: Add textAlign justify for android O+(api level >=26) Resolves https://github.com/facebook/react-native/issues/22475 <img src="https://user-images.githubusercontent.com/615282/49341207-35e3b980-f685-11e8-91ab-dbc19c1ee4d0.gif" width="400" /> Changelog: ---------- [Android] [Added] - Implement textAlign justify for android O+ Pull Request resolved: https://github.com/facebook/react-native/pull/22477 Differential Revision: D13512004 Pulled By: cpojer fbshipit-source-id: e20f4976bfd957a5faeae0bbed2ff27c03023bb1
This commit is contained in:
committed by
Facebook Github Bot
parent
af52693e9c
commit
d2153fc58d
@@ -15,6 +15,7 @@ import static org.mockito.Mockito.mock;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.Layout;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.AbsoluteSizeSpan;
|
||||
@@ -419,6 +420,21 @@ public class ReactTextTest {
|
||||
assertThat(textView.getEllipsize()).isEqualTo(TextUtils.TruncateAt.END);
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.O)
|
||||
@Test
|
||||
public void testTextAlignJustifyApplied() {
|
||||
UIManagerModule uiManager = getUIManagerModule();
|
||||
|
||||
ReactRootView rootView = createText(
|
||||
uiManager,
|
||||
JavaOnlyMap.of("textAlign", "justify"),
|
||||
JavaOnlyMap.of(ReactRawTextShadowNode.PROP_TEXT, "test text"));
|
||||
|
||||
TextView textView = (TextView) rootView.getChildAt(0);
|
||||
assertThat(textView.getText().toString()).isEqualTo("test text");
|
||||
assertThat(textView.getJustificationMode()).isEqualTo(Layout.JUSTIFICATION_MODE_INTER_WORD);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure TextView has exactly one span and that span has given type.
|
||||
*/
|
||||
|
||||
+6
@@ -9,8 +9,10 @@ package com.facebook.react.views.textinput;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.text.InputType;
|
||||
import android.text.InputFilter;
|
||||
import android.text.Layout;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Gravity;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
@@ -344,6 +346,10 @@ public class ReactTextInputPropertyTest {
|
||||
assertThat(view.getGravity() & Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(Gravity.CENTER_HORIZONTAL);
|
||||
mManager.updateProperties(view, buildStyles("textAlign", null));
|
||||
assertThat(view.getGravity() & Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(defaultHorizontalGravity);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mManager.updateProperties(view, buildStyles("textAlign", "justify"));
|
||||
assertThat(view.getJustificationMode()).isEqualTo(Layout.JUSTIFICATION_MODE_INTER_WORD);
|
||||
}
|
||||
|
||||
// TextAlignVertical
|
||||
mManager.updateProperties(view, buildStyles("textAlignVertical", "top"));
|
||||
|
||||
Reference in New Issue
Block a user