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 a47fa7669..ae623bf0e 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 @@ -530,7 +530,7 @@ public class ReactTextShadowNode extends LayoutShadowNode { super.onCollectExtraUpdates(uiViewOperationQueue); if (mPreparedSpannableText != null) { ReactTextUpdate reactTextUpdate = - new ReactTextUpdate(mPreparedSpannableText, UNSET, mContainsImages); + new ReactTextUpdate(mPreparedSpannableText, UNSET, mContainsImages, getPadding()); uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), reactTextUpdate); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java index 3af8cc87d..61a6b3b6f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.java @@ -11,6 +11,8 @@ package com.facebook.react.views.text; import android.text.Spannable; +import com.facebook.csslayout.Spacing; + /** * Class that contains the data needed for a text update. * Used by both and @@ -21,11 +23,17 @@ public class ReactTextUpdate { private final Spannable mText; private final int mJsEventCounter; private final boolean mContainsImages; + private final Spacing mPadding; - public ReactTextUpdate(Spannable text, int jsEventCounter, boolean containsImages) { + public ReactTextUpdate( + Spannable text, + int jsEventCounter, + boolean containsImages, + Spacing padding) { mText = text; mJsEventCounter = jsEventCounter; mContainsImages = containsImages; + mPadding = padding; } public Spannable getText() { @@ -39,4 +47,8 @@ public class ReactTextUpdate { public boolean containsImages() { return mContainsImages; } + + public Spacing getPadding() { + return mPadding; + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java index 2d942d819..da7ea7e82 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java @@ -17,6 +17,7 @@ import android.view.Gravity; import android.view.ViewGroup; import android.widget.TextView; +import com.facebook.csslayout.Spacing; import com.facebook.react.uimanager.ReactCompoundView; public class ReactTextView extends TextView implements ReactCompoundView { @@ -45,6 +46,12 @@ public class ReactTextView extends TextView implements ReactCompoundView { setLayoutParams(EMPTY_LAYOUT_PARAMS); } setText(update.getText()); + Spacing padding = update.getPadding(); + setPadding( + (int) Math.ceil(padding.get(Spacing.LEFT)), + (int) Math.ceil(padding.get(Spacing.TOP)), + (int) Math.ceil(padding.get(Spacing.RIGHT)), + (int) Math.ceil(padding.get(Spacing.BOTTOM))); } @Override diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java index 4bb885156..c75e9797b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java @@ -119,7 +119,7 @@ public class ReactTextInputShadowNode extends ReactTextShadowNode implements if (mJsEventCount != UNSET) { Spannable preparedSpannableText = fromTextCSSNode(this); ReactTextUpdate reactTextUpdate = - new ReactTextUpdate(preparedSpannableText, mJsEventCount, mContainsImages); + new ReactTextUpdate(preparedSpannableText, mJsEventCount, mContainsImages, getPadding()); uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), reactTextUpdate); } }