diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java index c482eabdc60..70d02274270 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java @@ -307,7 +307,13 @@ public class MountingManager { throw new IllegalStateException("Unable to find View for tag: " + reactTag); } - viewToUpdate.setPadding(left, top, right, bottom); + ViewManager viewManager = viewState.mViewManager; + if (viewManager == null) { + throw new IllegalStateException("Unable to find ViewManager for view: " + viewState); + } + + //noinspection unchecked + viewManager.setPadding(viewToUpdate, left, top, right, bottom); } @UiThread diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java index 0fb5268621a..542fa452f6f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java @@ -297,4 +297,10 @@ public abstract class ViewManager YogaMeasureMode heightMode) { return 0; } + + /** + * Subclasses can override this method to set padding for the given View in Fabric. Since not all + * components support setting padding, the default implementation of this method does nothing. + */ + public void setPadding(T view, int left, int top, int right, int bottom) {} } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java index 7bd93bf1a5a..f498db2ef83 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java @@ -123,4 +123,9 @@ public class ReactTextViewManager return TextLayoutManager.measureText( context, localData, props, width, widthMode, height, heightMode); } + + @Override + public void setPadding(ReactTextView view, int left, int top, int right, int bottom) { + view.setPadding(left, top, right, bottom); + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java index 89938960ea6..6e94791fc0e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java @@ -8,7 +8,6 @@ package com.facebook.react.views.textinput; import android.content.Context; import android.graphics.PorterDuff; -import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.os.Build; import android.text.Editable; @@ -50,7 +49,6 @@ import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper; import com.facebook.react.views.scroll.ScrollEvent; import com.facebook.react.views.scroll.ScrollEventType; import com.facebook.react.views.text.DefaultStyleValuesUtil; -import com.facebook.react.views.text.ReactFontManager; import com.facebook.react.views.text.ReactTextUpdate; import com.facebook.react.views.text.TextInlineImageSpan; import com.facebook.react.views.text.TextLayoutManager; @@ -1042,4 +1040,9 @@ public class ReactTextInputManager extends BaseViewManager