mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-05-01 22:35:29 +08:00
Dont create a spacing object for returning margin, padding, border, and position
Differential Revision: D4050773 fbshipit-source-id: 3fd04c27f887a36875e455b5404a17154ac18f91
This commit is contained in:
committed by
Facebook Github Bot
parent
58b5e28e71
commit
6664b816d7
@@ -62,7 +62,12 @@ public class ReactTextInputShadowNode extends ReactTextShadowNode implements
|
||||
setDefaultPadding(Spacing.TOP, mEditText.getPaddingTop());
|
||||
setDefaultPadding(Spacing.END, mEditText.getPaddingEnd());
|
||||
setDefaultPadding(Spacing.BOTTOM, mEditText.getPaddingBottom());
|
||||
mComputedPadding = spacingToFloatArray(getPadding());
|
||||
mComputedPadding = new float[] {
|
||||
getPadding(Spacing.START),
|
||||
getPadding(Spacing.TOP),
|
||||
getPadding(Spacing.END),
|
||||
getPadding(Spacing.BOTTOM),
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,12 +85,17 @@ public class ReactTextInputShadowNode extends ReactTextShadowNode implements
|
||||
TypedValue.COMPLEX_UNIT_PX,
|
||||
mFontSize == UNSET ?
|
||||
(int) Math.ceil(PixelUtil.toPixelFromSP(ViewDefaults.FONT_SIZE_SP)) : mFontSize);
|
||||
mComputedPadding = spacingToFloatArray(getPadding());
|
||||
mComputedPadding = new float[] {
|
||||
getPadding(Spacing.START),
|
||||
getPadding(Spacing.TOP),
|
||||
getPadding(Spacing.END),
|
||||
getPadding(Spacing.BOTTOM),
|
||||
};
|
||||
editText.setPadding(
|
||||
(int) Math.floor(getPadding().get(Spacing.START)),
|
||||
(int) Math.floor(getPadding().get(Spacing.TOP)),
|
||||
(int) Math.floor(getPadding().get(Spacing.END)),
|
||||
(int) Math.floor(getPadding().get(Spacing.BOTTOM)));
|
||||
(int) Math.floor(getPadding(Spacing.START)),
|
||||
(int) Math.floor(getPadding(Spacing.TOP)),
|
||||
(int) Math.floor(getPadding(Spacing.END)),
|
||||
(int) Math.floor(getPadding(Spacing.BOTTOM)));
|
||||
|
||||
if (mNumberOfLines != UNSET) {
|
||||
editText.setLines(mNumberOfLines);
|
||||
@@ -115,7 +125,12 @@ public class ReactTextInputShadowNode extends ReactTextShadowNode implements
|
||||
if (mComputedPadding != null) {
|
||||
float[] updatedPadding = mComputedPadding;
|
||||
if (getLayoutDirection() == CSSDirection.RTL) {
|
||||
updatedPadding = spacingToFloatArrayForRTL(getPadding());
|
||||
updatedPadding = new float[] {
|
||||
getPadding(Spacing.END),
|
||||
getPadding(Spacing.TOP),
|
||||
getPadding(Spacing.START),
|
||||
getPadding(Spacing.BOTTOM),
|
||||
};
|
||||
}
|
||||
uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), updatedPadding);
|
||||
mComputedPadding = null;
|
||||
@@ -128,7 +143,10 @@ public class ReactTextInputShadowNode extends ReactTextShadowNode implements
|
||||
preparedSpannableText,
|
||||
mJsEventCount,
|
||||
mContainsImages,
|
||||
getPadding(),
|
||||
getPadding(Spacing.START),
|
||||
getPadding(Spacing.TOP),
|
||||
getPadding(Spacing.END),
|
||||
getPadding(Spacing.BOTTOM),
|
||||
mTextAlign
|
||||
);
|
||||
uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), reactTextUpdate);
|
||||
@@ -138,27 +156,12 @@ public class ReactTextInputShadowNode extends ReactTextShadowNode implements
|
||||
@Override
|
||||
public void setPadding(int spacingType, float padding) {
|
||||
super.setPadding(spacingType, padding);
|
||||
mComputedPadding = spacingToFloatArray(getPadding());
|
||||
mComputedPadding = new float[] {
|
||||
getPadding(Spacing.START),
|
||||
getPadding(Spacing.TOP),
|
||||
getPadding(Spacing.END),
|
||||
getPadding(Spacing.BOTTOM),
|
||||
};
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
private float[] spacingToFloatArray(Spacing spacing) {
|
||||
return new float[] {
|
||||
spacing.get(Spacing.START),
|
||||
spacing.get(Spacing.TOP),
|
||||
spacing.get(Spacing.END),
|
||||
spacing.get(Spacing.BOTTOM),
|
||||
};
|
||||
}
|
||||
|
||||
// Since TextInput communicate with native component but not CSSLayout,
|
||||
// So flip the padding for RTL is necessary when the padding is updated
|
||||
private float[] spacingToFloatArrayForRTL(Spacing spacing) {
|
||||
return new float[] {
|
||||
spacing.get(Spacing.END),
|
||||
spacing.get(Spacing.TOP),
|
||||
spacing.get(Spacing.START),
|
||||
spacing.get(Spacing.BOTTOM),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user