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 11f1aee50e865c..2d942d8196773b 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 @@ -14,12 +14,16 @@ import android.text.Layout; import android.text.Spanned; import android.view.Gravity; +import android.view.ViewGroup; import android.widget.TextView; import com.facebook.react.uimanager.ReactCompoundView; public class ReactTextView extends TextView implements ReactCompoundView { + private static final ViewGroup.LayoutParams EMPTY_LAYOUT_PARAMS = + new ViewGroup.LayoutParams(0, 0); + private boolean mContainsImages; private int mDefaultGravityHorizontal; private int mDefaultGravityVertical; @@ -34,6 +38,12 @@ public ReactTextView(Context context) { public void setText(ReactTextUpdate update) { mContainsImages = update.containsImages(); + // Android's TextView crashes when it tries to relayout if LayoutParams are + // null; explicitly set the LayoutParams to prevent this crash. See: + // https://github.com/facebook/react-native/pull/7011 + if (getLayoutParams() == null) { + setLayoutParams(EMPTY_LAYOUT_PARAMS); + } setText(update.getText()); }